Windows窗口消息循环中TranslateAcclerator的理解
来源:互联网 发布:骚男的衣服淘宝店 编辑:程序博客网 时间:2024/06/03 17:07
VisualStudio工程中默认的Windows窗口取消息循环的写法如下:
while(GetMessage(&msg, NULL, 0, 0)){if (!TranslateAcclerator(msg.hwnd, hAccelTable, &msg)) { TranslateMessage(&msg); DispathMessage(&msg); }}
这里TranslateAcclerator执行失败才调用TranslateMessage与DispathMessage,我的理解是TranslateAcclerator在处理加速键时直接将处理后的消息发到窗口过程,如果调用成功(返回非零值),则不需要再调用DispathMessage将消息发到窗口过程。正如百度百科中有写
“若TransLateAccelerator返回非零值且消息已被翻译,应用程序就不能调用TranslateMessage函数对消息再做处理”。
因此TranslateAcclerator调用失败,即返回零值则表示没有加速键消息被处理,或处理失败,此时才需要调用TranslateMessage进行消息处理和DispathMessage将消息发到窗口过程。
0 0
- Windows窗口消息循环中TranslateAcclerator的理解
- 理解Windows消息循环
- 理解Windows消息循环
- 理解Windows消息循环
- Windows中窗口消息
- [译]理解Windows消息循环
- 理解MiniGUI消息循环和窗口过程
- 理解消息循环和窗口过程(转)
- Windows编程 从消息窗口到基本窗口 游戏循环窗口框架的简单实现
- 窗口破坏过程与Windows消息循环
- 窗口破坏过程与Windows消息循环
- 窗口破坏过程与Windows消息循环
- MFC---理解Windows消息循环机制
- 消息循环-我的理解
- Windows的一些窗口消息
- Windows的消息队列与消息循环
- windows的消息队列与消息循环
- Windows的消息队列与消息循环
- TortoiseGit密钥设置
- DOM节点
- 单点登录SSO学习小结
- 默认readline切换为vi
- L3-008. 喊山-PAT团体程序设计天梯赛GPLT(广度优先搜索)
- Windows窗口消息循环中TranslateAcclerator的理解
- python 列表处理,for循环语句,if条件判断
- 网易有道第一道编程题
- Struts、Spring、Hibernate框架整合流程
- TCP流量控制和拥塞控制
- 【模拟】Codeforces 705B Spider Man
- LintCode:摆动排序 II
- 快速重传和快速恢复
- 关于图像处理的文章