MFC中使用SendMessage、PostMessage、PostThreadMessage
2011-09-06 21:40
405 查看
先看MSDN中解释:
BOOLPostThreadMessage( UINTmessage, WPARAMwParam, LPARAMlParam );
Calledtopostauser-definedmessagetoanotherCWinThreadobject
使用这个函数可以向一个CwinThread类型的类发送消息(即包括从CWindThrea中继承而来的类),使用方法如下:
CWinThread*pUIThread=AfxBeginThread(RUNTIME_CLASS(CProgress));//CProgress是从CWindThead中继承而来的类
CProgress*pUIThrd=(CProgress*)(pView->pUIThread);//pView是一个视类的实例,pUIThread是它的一个成员
pUIThrd->PostThreadMessage(WM_PROS,NULL,NULL);//向CProgress类发送WM_PROS消息,由该类中对应的消息响应函数进行处理
BOOLPostMessage(
UINTmessage,
WPARAMwParam=0,
LPARAMlParam=0
);
Placesamessageinthewindow'smessagequeueandthenreturnswithoutwaitingforthecorrespondingwindowtoprocessthemessage
使用这个函数可以向一个CWnd类型的类发送你消息(即包括从CWnd类中继承而来的类),CView也是从中继承而来的,使用方法如下:
CWinThread*pThread=AfxBeginThread(Calculate,this);//this代表的是一个从CView类中继承而来的Demo4View类,Caculate是该线程的
//线程处理函数,把this传递给Caculate进行处理
CDemo4View*pView=(CDemo4View*)pParam;
pView->PostMessage(WM_RESULT,NULL,duration);//向这个CDemo4View类发送WM_RESULT消息,由该类对应的消息响应函数进行处理
LRESULTSendMessage(
UINTmessage,
WPARAMwParam=0,
LPARAMlParam=0
);
它与PostMessage的用法相同个,不同支持是它只有在对应的类处理完发送的消息后才返回,这样后面的代码可能要过一段时间才能执行;
而PostMessge是发送完消息就立即返回,不管消息处理完没有,这样后面的代码就可以立即执行。
相关文章推荐
- 再谈PostMessage和SendMessage(如何使用 LParam 和 RParam两个参数)
- MFC中不同对话框间使用SendMessage发送自定义消息的具体实现
- MFC窗口消息PostMessage和SendMessage
- 再谈PostMessage和SendMessage(如何使用 LParam 和 RParam两个参数)
- Vc/MFC中自定义消息及其PostMessage触发使用
- MFC使用SendMessage()发送自定义消息实现进程间通信
- Windows编程基础--第16节 MFC之SendMessage和PostMessage
- SendMessage(),PostMessage(),PostThreadMessage ()使用
- MFC使用SendMessage()发送自定义消息实现进程间通信
- MFC SendMessage或PostMessage发送自定义消息
- 频繁启动和销毁的程序,使用SendMessage,PostMessage;
- C++技术问题总结-第10篇 MFC中SendMessage与PostMessage异同
- MFC发送消息函数PostMessage(异步)和SendMessage(同步)的异同
- sendmessage()和postmessage()使用的注意事项
- 非系统消息的使用方法及SendMessage()和PostMessage()的区别
- MFC使用SendMessage()发送自定义消息实现进程间通信
- MFC窗口消息PostMessage和SendMessage
- 【MFC】SendMessage与PostMessage
- 关于SendMessage和PostMessage的使用感悟
- MFC中PostMessage的使用例子说明