peekmessage与GetMessage和VC之SendMessage与PostMessage的区别
来源:互联网 发布:傅园慧网络直播回看 编辑:程序博客网 时间:2024/05/16 18:59
转载自:http://blog.csdn.net/whui19890911/article/details/8693872
SendMessage与PostMessage的区别:SendMessage函數是阻塞的。PostMessage函數是非阻塞的。
SendMessage:函数功能:该函数将指定的消息发送到一个或多个窗口。此函数为指定的窗口调用窗口程序,直到窗口程序处理完消息再返回。而函数PostMessage不同,将一个消息寄送到一个线程的消息队列后立即返回。
函数原型:LRESULT SendMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM IParam);
参数:hWnd:其窗口程序将接收消息的窗口的句柄。如果此参数为HWND_BROADCAST,则消息将被发送到系统中所有顶层窗口,包括无效或不可见的非自身拥有的窗口、被覆盖的窗口和弹出式窗口,但消息不被发送到子窗口。Msg:指定被发送的消息。wParam:指定附加的消息指定信息。IParam:指定附加的消息指定信息。
返回值:返回值指定消息处理的结果,依赖于所发送的消息。
备注:需要用HWND_BROADCAST通信的应用程序应当使用函数RegisterWindowMessage来为应用程序间的通信取得一个唯一的消息。
如果指定的窗口是由调用线程创建的,则窗口程序立即作为子程序调用。如果指定的窗口是由不同线程创建的,则系统切换到该线程并调用恰当的窗口程序。线程间的消息只有在线程执行消息检索代码时才被处理。发送线程被阻塞直到接收线程处理完消息为止。
函数功能:该函数将一个消息放入(寄送)到与指定窗口创建的线程相联系消息队列里,不等待线程处理消息就返回。消息队列里的消息通过调用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),消息参数不能包含指针。否则,操作将会失败。函数将再接收线程处理消息之前返回,发送者将在内存被使用之前释放
GetMessage和PeekMessage的区别
在Win32中使用GetMessage和PeekMessage都可以获取对应该程序产生的消息。
GetMessage的一般用法是GetMessage(&msg,NULL,0,0);
- peekmessage与GetMessage和VC之SendMessage与PostMessage的区别
- peekmessage与GetMessage和VC之SendMessage与PostMessage的区别
- PostMessage与SendMessage、GetMessage与PeekMessage
- SendMessage 和 PostMessage , GetMessage 和 PeekMessage区别
- PostMessage和SendMessage、GetMessage和PeekMessage的区别
- GetMessage&PeekMessage 和SendMessage&PostMessage
- GetMessage&PeekMessage 和SendMessage&PostMessage
- GetMessage&PeekMessage 和SendMessage&PostMessage
- GetMessage&PeekMessage 和SendMessage&PostMessage
- VC之sendmessage与postmessage的区别
- VC之sendmessage与postmessage的区别
- VC之sendmessage与postmessage的区别
- GetMessage和PeekMessage区别,SendMessage()和PostMessage()区别
- GetMessage PeekMessage SendMessage PostMessage
- GetMessage(), PeekMessage(), PostMessage(), SendMessage()
- GetMessage(), PeekMessage(), PostMessage(), SendMessage()
- GetMessage(), PeekMessage(), PostMessage(), SendMessage()
- peekmessage getmessage postmessage sendmessage
- C++ 求后缀表达式的值
- 黑马程序员_交通灯管理系统
- 图的邻接矩阵和邻接表表示法
- uva 10594 - Data Flow(费用流)
- 在ubuntu下的快速安装mysql和 Python MySQLdb
- peekmessage与GetMessage和VC之SendMessage与PostMessage的区别
- Struts实现单文件上传、修改、删除(以图片为例)
- Oracle客戶端远程导入、导出
- 计算机书籍推荐
- 关于一个页面里面有两个按钮的解决。
- 黑马程序员_银行业务调度系统
- MYSQL远程连接数据
- (Relax 数论1.26)POJ 1496 Word Index(计算一个字符串在字典中的位置)
- Microsoft SharePoint 2010, is it a true Document Management System? 微软SharePoint 2010,它是真正的文档管理系统吗?