MFC DLL PreTranslateMessage 导致的快捷键不响应的问题?

本文探讨了MFC DLL中遇到的快捷键不响应问题,通过分析PreTranslateMessage函数的作用,解释了为何MFC使用afxMapHWND来管理窗口句柄。在DLL中,由于窗口消息的传递机制,可能导致快捷键无法正常处理。作者提出了使用键盘钩子和直接在窗口类中处理消息的替代方案,并讨论了线程独立和模块独立在多线程环境中的重要性。
摘要由CSDN通过智能技术生成

解决办法:

http://blog.sina.com.cn/s/blog_53d9f7e901000aef.html

http://zhidao.baidu.com/link?url=wl3LlUGz_oCQplgHV6vyf-c0dOsBW4xNa68dQJJL_KH1WcjaETEdTvPRlf3ZgdXQ3vKpKRKmHYYOL02mW2vDGtbVrc-4pJuvPXDB_tnJSKu


上面贴出了方法,自己也验证了。


但这篇文章说不解决的问题的方法,而是说说MFC 为什么要用PreTranslateMessage原因!


故事开始:最近在视频播放器的界面,界面用DUILIB开发,界面全部封装在DLL里面,发现不能过滤快捷键,当时也没有想为什么?,那问题来了,窗口消息只会发送对应的窗口处理函数里面去,那我怎么在一个窗口统一处理呢?这个时候我想到用键盘钩子去处理。直接用HOOK 键盘钩子获取按键消息,比喻回车全屏,空格暂定。后面想想其实想想 PreTranslateMessage其实也是做同样事情,你是否有感觉了,你仔细想你就会发现为什么MFC 里面有一个afxMapHWND 这个东西了,因为保存整个 window hwnd的列表。

因为HWND 只

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值