PreTranslateMessage

转载 2012年03月21日 06:45: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截获子窗口的消息 最近在搞一个小工具,当dia
  • FightForProgrammer
  • FightForProgrammer
  • 2014年06月17日 22:47
  • 1806

关于VC的dialog框PreTranslateMessage不响应现象及解决办法

1.案例情况:1)dialog动态生成按钮 CButton* pBtn = new CButton();// 定义按钮   CRect rcBtn(10,10,40, 30); //按钮显示位置长30...
  • fjssharpsword
  • fjssharpsword
  • 2011年07月01日 15:57
  • 8334

在MFC中手动添加消息处理函数PreTranslateMessage

一、添加消息处理函数PreTranslateMessage,此函数可以通过MFC ClassWizard添加 BOOL CPreTranslateMessageDlg::PreTransla...
  • foreverhuylee
  • foreverhuylee
  • 2014年05月09日 12:19
  • 9078

为手工添加MFC PreTranslateMessage 重载

在头文件中加  public: virtual BOOL PreTranslateMessage(MSG* pMsg);  然后在cpp 文件中重写  BOOL CGetcwndDlg::PreTra...
  • ssihc0
  • ssihc0
  • 2010年06月06日 23:31
  • 3834

PreTranslateMessage()里怎么捕捉组合键例如:Ctrl+C

BOOL CMydilog::PreTranslateMessage(MSG* pMsg){// TODO: Add your specialized code here and/or call th...
  • kingpcn
  • kingpcn
  • 2007年11月23日 13:07
  • 4573

Win32编程点滴之PreTranslateMessage与消息循环

转自 http://www.cnblogs.com/Greatest/archive/2009/08/25/1553623.html
  • ihc523
  • ihc523
  • 2014年06月07日 10:48
  • 2669

让MFC DLL 中的窗口响应PreTranslateMessage

PreTranslateMessage是CWnd的虚函数,在这条函数里处理一些按键消息非常方便。但最近参与一个项目,这个项目由主程序和多个插件DLL组成,其中的一个插件DLL是带有界面的,并且以主程序...
  • yyan
  • yyan
  • 2007年10月30日 19:40
  • 5761

VC PreTranslateMessage详解

1.函数原型:(MSDN) virtual BOOL PreTranslateMessage( MSG *pMsg ); 功能:     Override   this   func...
  • chanchaw
  • chanchaw
  • 2012年05月10日 20:07
  • 4953

PreTranslateMessage为何不能使鼠标失效?

PreTranslateMessage为何不能使鼠标失效?  BOOL CDlgMediaPlay::PreTranslateMessage(MSG* pMsg) { if(WM_RBUTTONDOW...
  • littleline
  • littleline
  • 2005年01月04日 12:45
  • 1621

PreTranslateMessage()函数捕获键盘按键消息

01. PreTranslateMessage函数,常用于屏蔽MFC对话框中默认的Enter和ESC消息函数原型:BOOL PreTranslateMessage(MSG* pMsg)用法举例:BOO...
  • bookish_2010_prj
  • bookish_2010_prj
  • 2010年09月09日 17:25
  • 6593
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:PreTranslateMessage
举报原因:
原因补充:

(最多只允许输入30个字)