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.ltesting.net