PreTranslateMessage
来源:互联网 发布:javascript基础教程 编辑:程序博客网 时间:2024/05/18 02:23
PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的,绝大多数本窗口的消息都要通过这里,比较常用,当你需要在MFC之前处理某些消息时,常常要在这里添加代码. MFC消息控制流最具特色的地方是CWnd类的虚拟函数PreTranslateMessage(),通过重载这个函数,我们可以改变MFC的消息控制流程,甚至可以作一个全新的控制流出来。只有穿过消息队列的消息才受PreTranslateMessage()影响,采用SendMessage()或其他类似的方式向窗口直接发送的而不经过消息队列的消息根本不会理睬PreTranslateMessage()的存在。
一、是否调用TranslateMessage()和DispatchMessage()是由一个名称为PreTranslateMessage()函数的返回值决定的,如果该函数返回TRUE,则不会把该消息分发给窗口函数处理。
二、传给PreTranslateMessage()的消息是未经翻译过的消息,它没有经过TranslateMessage()处理。可以在该函数中使用(pMsg->wParam==VK_RETURN)来拦截回车键。 三、在WindowProc里不能处理WM_Char消息。
四、SetWindowText会发送WM_Char给窗口。
五、PeekMessage和GetMessage的区别:
GetMessage在没有消息的时候等待消息,cpu占用率当然低。
PeekMessage没有消息的时候立刻返回,可以在没有消息的时候可以做其他处理,但cpu占用率一般较高。
大多游戏都用PeekMessage();
- PreTranslateMessage
- PreTranslateMessage
- PreTranslateMessage
- PreTranslateMessage()
- PreTranslateMessage()
- PreTranslateMessage
- PreTranslateMessage
- PreTranslateMessage
- Pretranslatemessage
- PreTranslateMessage
- PreTranslateMessage
- PreTranslateMessage
- PreTranslateMessage
- PreTranslateMessage
- PreTranslateMessage
- PreTranslateMessage
- PreTranslateMessage
- PreTranslateMessage
- C++中STL迭代器的种类和简介
- Linux 多线程编程( POSIX )( 三 )------->代码区 ( 信号灯实例 )
- Linux 多线程编程( POSIX )( 三 )------->信号灯
- Linux 多线程编程( POSIX )( 四 )------>代码区 ( 互斥量实例 )
- Linux 多线程编程( POSIX )( 四 )------>互斥量
- PreTranslateMessage
- Linux 多线程编程( POSIX )( 五 )----->代码区 ( 条件变量实例 )
- Linux 多线程编程( POSIX )( 五 )----->条件变量
- Linux 多线程编程( POSIX )( 六 )----->代码区 ( 共享内存实例 )
- Linux 多线程编程( POSIX )( 六 )----->共享内存区
- GetDeviceCaps()
- 给程序员玩的问题( 摘录 )
- 位运算的应用和实例( 摘 )
- 好玩的 1 + 2 + 3 + ... + n 求和问题