精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>编程开发>>● VB和Basic>>〓〓.VB电子文档集锦.〓〓>>《老猫:VB声明API》>>VB API:Windows消息函数

主题:VB API:Windows消息函数
发信人: winsy(鹰派)
整理人: winsy(2003-03-16 10:29:13), 站内信件
BroadcastSystemMessage 

VB声明 
Declare Function BroadcastSystemMessage Lib "user32" Alias "BroadcastSystemMessage" (ByVal dw As Long, pdw As Long, ByVal un As Long, ByVal wParam As Long, ByVal lParam As Long) As Long 
说明 
将一条系统消息广播给系统中所有的顶级窗口 
返回值 
Long,大于零表示成功;-1表示出错。如设置了BSF_QUERY,而且至少有一个消息接收者返回零,那么这个函数返回零 
参数表 
参数 类型及说明 
dw Long,下述常数的一个或多个 
BSF_FLUSHDISK 每次处理完一条消息后,都对磁盘进行刷新(将未存盘的数据存下来 
BSF_FORCEIFHUNG 如目标处于挂起状态,则在设定的超时后到期返回 
BSF_IGNORECURRENTTASK 发送任务不接收消息 
BSF_LPARAMBUFFER lParam指向一个内存缓冲区 
BSF_NOHANG 跳过被挂起的所有进程 
BSF_POSTMESSAGE 投递消息。不与BSF_LPARAMBUFFER和BSF_QUERY兼容 
BSF_QUERY 将消息顺序发给进程,只有前一个返回TRUE时,才进入下一个进程 
pdw Long,下述常数的一个或多个 
BSF_ALLCOMPONENTS 消息进入能够接收消息的每一个系统组件 
BSF_APPLICATIONS 消息到达应用程序 
BSF_INSTALLABLEDRIVERS 消息到达可安装的驱动程序 
BSF_NETDRIVERS 消息到达网络驱动程序 
BSF_VXDS 消息到达系统设备驱动程序 
un Long,消息编号 
wParam Long,由消息决定 
lParam Long,由消息决定。如指定了BSF_LPARAMBUFFER,这就是位于调用进程地址空间的一个内存缓冲区的地址,而且缓冲区的第一个16位字包含了缓冲区的长度 


GetMessagePos 

VB声明 
Declare Function GetMessagePos Lib "user32" Alias "GetMessagePos" () As Long 
说明 
取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置 
返回值 
Long,X坐标对应于结果值的低字,Y坐标对应于高字 


GetMessageTime 

VB声明 
Declare Function GetMessageTime Lib "user32" Alias "GetMessageTime" () As Long 
说明 
取得消息队列中上一条消息处理完毕时的时间 
返回值 
Long,返回一个时间,表示为自系统启动以来经历的毫秒数
原文:The time is specified in milliseconds from the time the system was started. 


PostMessage, PostMessageBynum, PostMessageBystring 

VB声明 
Declare Function PostMessage& Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)
Declare Function PostMessageByNum& Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long)
Declare Function PostMessageByString& Lib "user32" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) 
说明 
将一条消息投递到指定窗口的消息队列。投递的消息会在Windows事件处理过程中得到处理。在那个时候,会随同投递的消息调用指定窗口的窗口函数。特别适合那些不需要立即处理的窗口消息的发送 
返回值 
Long,如消息投递成功,则返回TRUE(非零)。会设置GetLastError 
参数表 
参数 类型及说明 
hwnd Long,接收消息的那个窗口的句柄。如设为HWND_BROADCAST,表示投递给系统中的所有顶级窗口。如设为零,表示投递一条线程消息(参考PostThreadMessage) 
wMsg Long,消息标识符 
wParam Long,具体由消息决定 
lParam Any,具体由消息决定 


PostThreadMessage 

VB声明 
Declare Function PostThreadMessage Lib "user32" Alias "PostThreadMessageA" (ByVal idThread As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long 
说明 
将一条消息投递给应用程序。这条消息由应用程序的内部GetMessage循环获得,但不会传给一个特定的窗口 
返回值 
Long,如消息投递成功,则返回TRUE(非零)。会设置GetLastError 
参数表 
参数 类型及说明 
idThread Long,用于接收消息的那个线程的标识符 
msg Long,消息标识符 
wParam Long,具体由消息决定 
ByVal Long,具体由消息决定 


RegisterWindowMessage 

VB声明 
Declare Function RegisterWindowMessage Lib "user32" Alias "RegisterWindowMessageA" (ByVal lpString As String) As Long 
说明 
获取分配给一个字串标识符的消息编号 
返回值 
Long,&C000 到 &FFFF之间的一个消息编号。零意味着出错 
参数表 
参数 类型及说明 
lpString String,注册消息的名字 
注解 
如果没有一个子类处理程序的帮助,这个函数就没有什么用
 

ReplyMessage 

VB声明 
Declare Function ReplyMessage Lib "user32" Alias "ReplyMessage" (ByVal lReply As Long) As Long 
说明 
如将消息传送给位于不同进程的一个窗口,通常第一个进程会暂时挂起,直到另一个进程中的窗口函数完成操作为止。在目标进程的窗口函数完成之前,另一个进程可用这个函数向第一个进程返回一个结果,使之能继续进行 
返回值 
Long,如准备答复的消息是由另一个进程发来的,则返回TRUE。如果它是从同一个进程中发出来的,则返回FALSE(此时,该函数没有任何效果) 
参数表 
参数 类型及说明 
lReply Long,指定发回调用进程的一个结果 


SendMessage, SendMessageBynum, SendMessageByString 

VB声明 
Declare Function SendMessage& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any)
Declare Function SendMessageBynum& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long)
Declare Function SendMessageByString& Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As String) 
说明 
调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数不会返回。SendMessageBynum, SendMessageByString是该函数的“类型安全”声明形式 
返回值 
Long,由具体的消息决定 
参数表 
参数 类型及说明 
hwnd Long,要接收消息的那个窗口的句柄 
wMsg Long,消息的标识符 
wParam Long,具体取决于消息 
lParam Any,具体取决于消息 


SendMessageCallback 

VB声明 
Declare Function SendMessageCallback Lib "user32" Alias "SendMessageCallbackA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long, ByVal lpResultCallBack As Long, ByVal dwData As Long) As Long 
说明 
将一条消息发给窗口。该函数最大的特定是可以立即返回。目标窗口函数执行完毕后,会用回调函数的形式将结果返回 
返回值 
Long,TRUE表示成功,FALSE表示失败。会设置GetLastError 
参数表 
参数 类型及说明 
hwnd Long,要接收消息的那个窗口的句柄 
msg Long,消息的标识符 
wParam Long,取决于消息 
lParam Long,取决于消息 
lpResultCallBack Long,指定函数地址。在vb5中可用AddressOf操作符获得 
dwData Long,用户自定义值 
注解 
回调函数声明如下:
Public Function WndProc(ByVal hwnd&, ByVal msg&, ByVal wp&, ByVal lp&) As Long
其中,wp参数是作为dwData参数传递的值。lp参数包含了来自窗口函数的结果
 

SendMessageTimeout 

VB声明 
Declare Function SendMessageTimeout Lib "user32" Alias "SendMessageTimeoutA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long, ByVal fuFlags As Long, ByVal uTimeout As Long, lpdwResult As Long) As Long 
说明 
向窗口发送一条消息。如窗口位于不同的线程中,则利用这个函数可以指定一个超时值,以便在另一个进程挂起的时候防止调用进程也永远挂起 
返回值 
Long,成功时返回TRUE,失败时返回FALSE。会设置GetLastError 
参数表 
参数 类型及说明 
hwnd Long,要接收消息的一个窗口的句柄 
msg Long,消息的标识符 
wParam Long,由消息决定 
lParam Long,由消息决定 
fuFlags Long,下述常数的一个或多个 
SMTO_ABORTIFHUNG 如目标进程挂起,则函数立即返回 
SMTO_BLOCK 除非函数返回,否则调用线程不能处理消息 
SMTO_NORMAL 允许调用线程处理消息,同时保持函数继续执行 
uTimeout Long,超时值,采用毫秒为单位 
lpdwResult Long,用于装载函数结果的一个变量 


SendNotifyMessage 

VB声明 
Declare Function SendNotifyMessage Lib "user32" Alias "SendNotifyMessageA" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long 
说明 
向窗口发送一条消息。如目标窗口位于同调用方相同的线程内,则这个函数会表现为SendMessage函数。而且除非消息得到处理,否则函数不会返回。如目标窗口从属于一个不同的线程,则函数会立即返回 
返回值 
Long,TRUE表示成功,FALSE表示出错。会设置GetLastError 
参数表 
参数 类型及说明 
hwnd Long,用于接收消息的一个窗口的句柄 
msg Long,消息的标识符 
wParam Long,具体由消息决定 
lParam Long,具体由消息决定 


[关闭][返回]