


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、PB 中消息框的居中顯示(:獨孤求敗 2003-05-26)與大多數(shù)的開發(fā)環(huán)境相類似,erBuilder(以下簡稱 PB)中的 MessageBox 函數(shù)是不提供框居中顯框關(guān)閉后示功能的。但在 PB 中可以通過多線程技術(shù)來解決這個問題。由于 MessageBox 函數(shù)要在才能返回,所以無法使用線程同步技術(shù)。為此,在應(yīng)用程序的主線創(chuàng)建一個新線程,該線程將在指定的時間內(nèi)循環(huán)調(diào)用 FindWindowEx 函數(shù)來查找 MessageBox 函數(shù)生成的后,調(diào)用 MoveWindow 函數(shù)改變窗口位置使其居中???,在獲得框句柄在 PB 中實現(xiàn)多線程技術(shù),有兩種方法:一種是用 VC將寫入函數(shù)并編譯成動態(tài)庫
2、供 PB 調(diào)用;另一種是用 PB 的 SharedObject 系列函數(shù)來實現(xiàn)多線程。本文基于 PB 的編程技術(shù),介紹第二種實現(xiàn)方法。SharedObject 系列函數(shù)和共享對象有關(guān)的函數(shù)包括:SharedObjectRegister、SharedObjectGet、SharedObjectUnregister 和 Sh aredObjectDirectory 函數(shù)。首先,用 SharedObjectRegister 函數(shù)初始化共享對象,并建立一個單獨的線程。如:SharedObjectRegister (“ccuo_thread” ,“thread1” )其中 ccuo_thread 是一個
3、共享的自定義類用戶對象的類名,thread1 是共享對象實例的共享名。如果 SharedObjectRegister 函數(shù)返回 Sucs,則新線程創(chuàng)建成功。然后,執(zhí)行指定代碼。有兩種方法讓新線程執(zhí)行指定的代碼:一種是在自定義類用戶對象的constructor事件中編寫,新線程創(chuàng)建后就會自動執(zhí)行該事件;另法是使用SharedObjectGet 函數(shù)。該函數(shù)實現(xiàn)共享對象實例的,如:SharedObjectGet ( “thread1” ,inv_thread )其中 inv_thread 是用來共享對象實例的一個對象變量,要求與ccuo_thread 具有同一個類名。最后,通過使用t 語句,即以
4、inv_thre數(shù) of_function。ost of_function(agrs)的形式,異步調(diào)用共享對象的函在完成任務(wù)后,可以用 SharedObjectUnregister 函數(shù)中止線程,也可用 SharedObjectDirectory 函數(shù)列出所有有效的共享對象。函數(shù)調(diào)用部分本文所用 Win32 API 函數(shù)原型為:Function Ulongser32.dll”FindWindowA ( String lpClaame ,String lpWindowName ) Library “uFunction Function Function 32.dll” Function t ,下
5、面具體UlongUlongGetTickCount ( ) Library “kernel32.dll”GetDesktopWindow ( ) LibraryGetWindowRect ( Ulong hWnd“user32.dll”,ref stc_rect lpRect ) Library “userMoveWindow ( Ulong hWnd ,) Library “user32.dll”X ,Y ,nWidth ,nHeighbRepa如何實現(xiàn)消息框的居中顯示:/對象變量ccuo_thread lccuo_thread/創(chuàng)建新線程SharedObjectRegister (ccuo
6、_thread ,thread_center )/實例SharedObjectGet (thread_center ,lccuo_thread )/調(diào)用窗口居中函數(shù)lccuo_thre/創(chuàng)建消息 MessageBox/中止線程ost of_center (32770 ,Demostration ,2000 )框( Demostration ,Copyright(c) 2001 by Y.L.Sun )SharedObjectunRegister ( thread_center )函數(shù)實現(xiàn)部分實現(xiàn)窗口居中顯示的函數(shù)是自定義類用戶對象 ccuo_thread 的對象函數(shù) of_center,其實現(xiàn)
7、代碼如下:ccuo_thread.of_center ( String lpclaame ,Stringlpwindowname , Ulongdwtimeout ) return框的類名(32770)框的標題/lpclaame: 消息/lpwindowname: 消息/dwtimeout: 超時計數(shù)Ulong lul_hwnd /存放消息框的句柄Ulong lul_start /計時開始時刻的值 lul_start = GetTickCount ( ) /計時開始 do/查找頂層窗口lul_hwnd=FindWindowA ( lpclaame ,lpwindowname )/找到頂層窗口后
8、,跳出循環(huán)if lul_hwnd 0 then exit/判斷是否已超時loop while GetTickCount( )lul_start dwtimeout/沒有找到消息框if lul_hwnd = 0 then return falseelse/框居中return of_center ( 0 ,lul_hwnd ) end ifof_center 的重載函數(shù)代碼如下:ccuo_thread.of_center ( Ulong hwndp ,Ulong hwndc/hwndp:父窗口的句柄,值為 0 時認為是桌面/hwndc:子窗口的句柄 li_x /窗口的 X 坐標 li_y /窗口的
9、 Y 坐標stc_rect lstc_parent /父窗口的 4 邊坐標stc_rect lstc_child /子窗口的 4 邊坐標/值為 0 時認為是桌面if hwndp = 0 then hwndparent = GetDesktopWindow ( )/獲得窗口的 4 邊坐標if not GetWindowRect ( hwndcurrent ,lstc_child ) returnthen return falseif not GetWindowRect ( hwndparent ,lstc_parent ) then return falseli_x = ( lstc_parent.right lstc_parent.left ) ( lstc_child.right lstc_child.left ) /2li_y = ( lstc_parent.bottom lstc_parent.top ) ( lstc_child.bottom lstc_child.top ) /2/計算子窗口的 X、Y 坐標if li_x 0 or li_y 0 then return false/移動子
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年去年農(nóng)行筆試試題及答案
- 2025年弘文學(xué)??荚囶}及答案
- 2025年婦科疾病的試題及答案
- 高教版中職語文 《燭之武退秦師》教學(xué)設(shè)計
- 2025年考驗管理面試試題及答案
- “國漫澎湃·奇遇in美好”主題葫蘆娃次元活動策劃方案【國漫IP】【二次元活動】
- 材料收納盒(教學(xué)設(shè)計)-2024-2025學(xué)年蘇少版(2024)美術(shù)一年級下冊
- 《電商品流通企業(yè)會計 第4版》課件 第8章 商場的管理與核算
- 2025年業(yè)務(wù)維護面試題及答案
- 2025年山東支醫(yī)面試題及答案
- 藥劑學(xué)第9版課件:第一章-緒論
- 《下載-綜合布線》課件
- 可穿戴生理傳感器驅(qū)動的深度學(xué)習(xí)情緒識別模型在心理健康評估中的應(yīng)用
- 風(fēng)力發(fā)電塔管桁架施工方案
- 2024-2030年中國工控機行業(yè)發(fā)展狀況及營銷戰(zhàn)略研究報告
- 標準土方工程招標文件樣本
- 如何提升管理能力和水平
- 智慧漁政網(wǎng)格管理平臺項目方案
- GB/T 7716-2024聚合級丙烯
- 臨床護理實踐指南2024版
- 《弱電知識培訓(xùn)》課件
評論
0/150
提交評論