MFC消息处理机制
来源:互联网 发布:python split() 编辑:程序博客网 时间:2024/05/23 01:02
Windows消息处理机制
Windows把来自硬件(键盘,鼠标)的消息和来自应用程序的消息放在Windows消息队列中。应用程序有自己的消息队列,即线程消息队列。
Windows获取到消息放置在消息队列,然后发送给程序的线程消息队列,最后线程队列每次取出一条消息发送到指定窗口,不断取出消息(循环),直到结束。
这个循环就是靠消息环(while(GetMessage()) TranslateMessage();DispatchMessage();实现的.
GetMessage()只是从线程消息中取出一条消息,TranslateMessage()把virtue key消息转化成character消息,如VK_F1会转化成WM_HELP,而DispatchMessage 则把取出的消息发送到目的窗口.如果收到WM_CLOSE消息则结束循环,发送postqiutmessage(0),处理WM_DESTROY销毁窗口!
while (GetMessage(&msg, NULL, 0, 0)) //C++ code{ TranslateMessage(&msg); DispatchMessage(&msg);}百度百科:PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗口的消息都要通过这里,比较常用,当你需要在MFC之前处理某些消息时,常常要在这里添加代码. MFC消息控制流最具特色的地方是CWnd类的虚拟函数PreTranslateMessage(),通过重载这个函数,我们可以改变MFC的消息控制流程,甚至可以作一个全新的控制流出来。只有穿过消息队列的消息才受PreTranslateMessage()影响,采用SendMessage()或其他类似的方式向窗口直接发送的而不经过消息队列的消息根本不会理睬PreTranslateMessage()的存在。
阅读全文
0 0
- mfc消息处理机制
- MFC消息处理机制
- MFC消息处理机制
- 090926(星期六):MFC消息处理机制
- MFC消息映射和处理机制整理
- MFC消息处理机制,Dlg程序的消息循环
- 深入剖析MFC中Windows消息处理机制
- 深入剖析MFC中Windows消息处理机制
- 深入剖析MFC中Windows消息处理机制
- 深入剖析MFC中Windows消息处理机制
- MFC的消息处理机制及相关的宏
- MFC消息机制---消息映射
- MFC消息机制
- MFC消息映射机制
- MFC消息响应机制
- MFC消息响应机制
- MFC消息响应机制
- MFC消息映射机制
- 如果用eclipse mave插件构建的项目不能用tomcat加载执行
- Oracle用户管理系列③----防御黑客:登陆错误限制加锁、解锁操作、以及设置配置文件与用户名关系
- 微信开发整理生成jar包
- MySQL启动失败,The server quit without updating PID file
- python基础_1
- MFC消息处理机制
- 阿里云服务器上传 下载代码方法汇总
- 如何实现从登陆界面跳转到游戏大厅界面
- CodeForces 872B Maximum of Maximums of Minimums
- Squidb使用总结
- Java 1.8 的spark中语法
- Springboot+Mybatis简单查询
- 可汗学院金融学(二)
- LeetCode 第8题:String to Integer