delphi 中 postmessage 和sendmessage用法
本人刚开始学习delphi刚看到一段代码PostMessage(Form1.Handle,VN_KEYDOWN,VK_TAB,0)请问Form1.Handle,VN_KE...
本人刚开始学习delphi
刚看到一段代码PostMessage(Form1.Handle,VN_KEYDOWN,VK_TAB,0)
请问Form1.Handle,VN_KEYDOWN,VK_TAB,0 这些参数代表什么,这个函数的格式,在什么情况下用
并比较一下与SendMessage有什么区别 展开
刚看到一段代码PostMessage(Form1.Handle,VN_KEYDOWN,VK_TAB,0)
请问Form1.Handle,VN_KEYDOWN,VK_TAB,0 这些参数代表什么,这个函数的格式,在什么情况下用
并比较一下与SendMessage有什么区别 展开
3个回答
展开全部
PostMessage发送完消息后立刻返回继续执行程序.
SendMessage发送完消息后等待消息处理完以后,才能返回继续执行程序.
Form1.Handle是form1窗口的句柄
VN_KEYDOWN 是消息类型为按下某键
VK_TAB 键值Tab
Win32 API消息函数:PostMessage
函数功能:该函数将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回。消息队列里的消息通过调用GetMessage和PeekMessage取得。
函数原型:B00L PostMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
参数
hWnd:其窗口程序接收消息的窗口的句柄。可取有特定含义的两个值:
HWND.BROADCAST:消息被寄送到系统的所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口。消息不被寄送到子窗口。
NULL:此函数的操作和调用参数dwThread设置为当前线程的标识符PostThreadMessage函数一样。
Msg:指定被寄送的消息。
wParam:指定附加的消息特定的信息。
IParam:指定附加的消息特定的信息。
返回值:如果函数调用成功,返回非零值:如果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。
备注:需要以 HWND_BROADCAST方式通信的应用程序应当用函数 RegisterwindwosMessage来获得应用程序间通信的独特的消息。
如果发送一个低于WM_USER范围的消息给异步消息函数(PostMessage.SendNotifyMessage,SendMesssgeCallback),消息参数不能包含指针。否则,操作将会失败。函数将再接收线程处理消息之前返回,发送者将在内存被使用之前释放。
速查:Windows NT: 3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;输入库:user32.lib;Unicode:在Windows NT环境下以Unicode和ANSI方式实现。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/EddieLiugd/archive/2004/12/07/207856.aspx
SendMessage发送完消息后等待消息处理完以后,才能返回继续执行程序.
Form1.Handle是form1窗口的句柄
VN_KEYDOWN 是消息类型为按下某键
VK_TAB 键值Tab
Win32 API消息函数:PostMessage
函数功能:该函数将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回。消息队列里的消息通过调用GetMessage和PeekMessage取得。
函数原型:B00L PostMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
参数
hWnd:其窗口程序接收消息的窗口的句柄。可取有特定含义的两个值:
HWND.BROADCAST:消息被寄送到系统的所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口。消息不被寄送到子窗口。
NULL:此函数的操作和调用参数dwThread设置为当前线程的标识符PostThreadMessage函数一样。
Msg:指定被寄送的消息。
wParam:指定附加的消息特定的信息。
IParam:指定附加的消息特定的信息。
返回值:如果函数调用成功,返回非零值:如果函数调用失败,返回值是零。若想获得更多的错误信息,请调用GetLastError函数。
备注:需要以 HWND_BROADCAST方式通信的应用程序应当用函数 RegisterwindwosMessage来获得应用程序间通信的独特的消息。
如果发送一个低于WM_USER范围的消息给异步消息函数(PostMessage.SendNotifyMessage,SendMesssgeCallback),消息参数不能包含指针。否则,操作将会失败。函数将再接收线程处理消息之前返回,发送者将在内存被使用之前释放。
速查:Windows NT: 3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:winuser.h;输入库:user32.lib;Unicode:在Windows NT环境下以Unicode和ANSI方式实现。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/EddieLiugd/archive/2004/12/07/207856.aspx
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询