PB中消息對話框的居中顯示

發表于:2008-10-14來源:作者:點擊數: 標簽:對話框
SharedObject系列函數和共享對象有關的函數包括:SharedObjectRegister、SharedObjectGet、SharedObjectUnregister和SharedObjectDirectory函數。 首先,用SharedObjectRegister函數初始化共享對象,并建立一個單獨的線程。如: SharedObjectRegister (“ccu
 SharedObject系列函數和共享對象有關的函數包括:SharedObjectRegister、SharedObjectGet、SharedObjectUnregister和SharedObjectDirectory函數。

  首先,用SharedObjectRegister函數初始化共享對象,并建立一個單獨的線程。如:
SharedObjectRegister (“ccuo_thread” ,“thread1” ) 其中ccuo_thread是一個共享的自定義類用戶對象的類名,thread1是共享對象實例的共享名。如果SharedObjectRegister函數返回Success,則新線程創建成功。

  然后,執行指定代碼。有兩種方法讓新線程執行指定的代碼:一種是在自定義類用戶對象的constructor事件中編寫腳本,新線程創建后就會自動執行該事件腳本;另一種方法是使用SharedObjectGet函數。該函數實現共享對象實例的引用,如:
SharedObjectGet ( “thread1” ,inv_thread ) 其中inv_thread是用來存儲共享對象實例的一個對象變量,要求與ccuo_thread具有同一個類名。

  最后,通過使用Post語句,即以inv_thread.Post of_function(agrs)的形式,異步調用共享對象的函數of_function。

  在完成任務后,可以用SharedObjectUnregister函數中止線程,也可用SharedObjectDirectory函數列出所有有效的共享對象。

一、函數調用部分


本文所用Win32 API函數原型為:
Function Ulong FindWindowA ( String lpClassName ,String lpWindowName ) Library “user32.dll”
Function Ulong GetTickCount ( ) Library “kernel32.dll”
Function Ulong GetDesktopWindow ( ) Library “user32.dll”
Function Boolean GetWindowRect ( Ulong hWnd ,ref stc_rect lpRect ) Library “user32.dll”
Function Boolean MoveWindow ( Ulong hWnd ,int X ,int Y ,int nWidth ,int nHeight ,Boolean bRepaint ) Library “user32.dll”

下面具體討論如何實現消息對話框的居中顯示:

//聲明對象變量
ccuo_thread lccuo_thread

//創建新線程
SharedObjectRegister (‘ccuo_thread’ ,‘thread_center’ )

//引用實例
SharedObjectGet (‘thread_center’ ,lccuo_thread )

//調用窗口居中函數
lccuo_thread.Post of_center (‘#32770’ ,‘Demostration’ ,2000 )

//創建消息對話框
MessageBox ( ‘Demostration’ ,‘Copyright(c) 2001 by Y.L.Sun’ )

//中止線程
SharedObjectunRegister ( ‘thread_center’ )

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97