首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

PreTranslateMessage的简单有关问题 - 2

2012-03-19 
PreTranslateMessage的简单问题 - 2 !对话框中的PreTranslateMessage()函数想截获WM_COMMAND消息,但是怎么

PreTranslateMessage的简单问题 - 2 !
对话框中的PreTranslateMessage()函数想截获WM_COMMAND消息,但是怎么也截获不了啊!
button1是对话框中的一个按钮!
PreTranslateMessage(MSG*   pMsg)  
{
  if   (pMsg-> message   ==   WM_COMMAND   &&   HIWORD(pMsg-> wParam)==BN_CLICKED)
  {
        CString   str;
        str   =   "button   1   BN_CLICKED   ! ";
        return   true;
  }
}
就是截获不了WM_COMMAND!

[解决办法]
重载OnCommand函数
////////////////////////
BOOL CXXXX::OnCommand(WPARAM wParam, LPARAM lParam)
{
// TODO: 在此添加专用代码和/或调用基类
if ( HIWORD(wParam)==BN_CLICKED)
{
CString str;
str = _T( "button 1 BN_CLICKED ! ");
AfxMessageBox(str);
}

return CDialog::OnCommand(wParam, lParam);
}
[解决办法]
if(pMsg-> message==WM_LBUTTONDOWN)
[解决办法]
实践证明PreTranslateMessage里面没有WM_COMMAND消息,这点可以确信。
可能MFC的WM_COMMAND消息在进入PreTranslateMessage之前已经被处理过了,你在这里是截不到的。

热点排行