VB 版 (精华区)

发信人: bloom (小石头长大了), 信区: VB
标  题: Windows消息函数
发信站: 哈工大紫丁香 (2000年07月23日17:33:25 星期天), 转信

         目录
BroadcastSystemMessage 将一条系统消息广播给系统中所有的顶级窗口
GetMessagePos 取得消息队列中上一条消息处理完毕时的鼠标指针屏幕位置
GetMessageTime 取得消息队列中上一条消息处理完毕时的时间
PostMessage 将一条消息投递到指定窗口的消息队列
PostThreadMessage 将一条消息投递给应用程序
RegisterWindowMessage 获取分配给一个字串标识符的消息编号
ReplyMessage 答复一个消息
SendMessage 调用一个窗口的窗口函数,将一条消息发给那个窗口
SendMessageCallback 将一条消息发给窗口
SendMessageTimeout 向窗口发送一条消息
SendNotifyMessage 向窗口发送一条消息
_______________________________________
BroadcastSystemMessage
VB声明
Declare Function BroadcastSystemMessage Lib "user32" Alias "BroadcastSystemM
essage" (ByVal dw As Long, pdw As Long, ByVal un As Long, ByVal wParam As Lo
ng, 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 Lo
ng
说明
取得消息队列中上一条消息处理完毕时的时间
返回值
Long,返回一个时间,表示为自系统启动以来经历的毫秒数
原文:The time is specified in milliseconds from the time the system was sta
rted.
___________________________________________________________________________
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" (ByV
al hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As S
tring)
说明
将一条消息投递到指定窗口的消息队列。投递的消息会在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 lPara
m As Long) As Long
说明
将一条消息投递给应用程序。这条消息由应用程序的内部GetMessage循环获得,但不会
传给一个特定的窗口
返回值
Long,如消息投递成功,则返回TRUE(非零)。会设置GetLastError
参数表
参数 类型及说明
idThread Long,用于接收消息的那个线程的标识符
msg Long,消息标识符
wParam Long,具体由消息决定
ByVal Long,具体由消息决定
___________________________________________
RegisterWindowMessage
VB声明
Declare Function RegisterWindowMessage Lib "user32" Alias "RegisterWindowMes
sageA" (ByVal lpString As String) As Long
说明
获取分配给一个字串标识符的消息编号
返回值
Long,&C000 到 &FFFF之间的一个消息编号。零意味着出错
参数表
参数 类型及说明
lpString String,注册消息的名字
注解
如果没有一个子类处理程序的帮助,这个函数就没有什么用
_________________________________________________________
ReplyMessage
VB声明
Declare Function ReplyMessage Lib "user32" Alias "ReplyMessage" (ByVal lRepl
y 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" (ByV
al hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As S
tring)
说明
调用一个窗口的窗口函数,将一条消息发给那个窗口。除非消息处理完毕,否则该函数
不会返回。SendMessageBynum, SendMessageByString是该函数的“类型安全”声明形

返回值
Long,由具体的消息决定
参数表
参数 类型及说明
hwnd Long,要接收消息的那个窗口的句柄
wMsg Long,消息的标识符
wParam Long,具体取决于消息
lParam Any,具体取决于消息
_______________________________________
SendMessageCallback
VB声明
Declare Function SendMessageCallback Lib "user32" Alias "SendMessageCallback
A" (ByVal hwnd As Long, ByVal msg As Long, ByVal wParam As Long, ByVal lPara
m 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 Lo
ng
其中,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,用于装载函数结果的一个变量
Top
___________________________________
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
说明
向窗口发送一条消息。如目标窗口位于同调用方相同的线程内,则这个函数会表现为Se
ndMessage函数。而且除非消息得到处理,否则函数不会返回。如目标窗口从属于一个不
同的线程,则函数会立即返回
返回值
Long,TRUE表示成功,FALSE表示出错。会设置GetLastError
参数表
参数 类型及说明
hwnd Long,用于接收消息的一个窗口的句柄
msg Long,消息的标识符
wParam Long,具体由消息决定
lParam Long,具体由消息决定






     又臭,又硬。
           小石头

※ 来源:·哈工大紫丁香 bbs.hit.edu.cn·[FROM: 202.118.233.140]
[百宝箱] [返回首页] [上级目录] [根目录] [返回顶部] [刷新] [返回]
Powered by KBS BBS 2.0 (http://dev.kcn.cn)
页面执行时间:2.161毫秒