读书人

PreTranslateMessage的简单有关问题 -

发布时间: 2012-03-19 22:03:05 作者: rapoo

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之前已经被处理过了,你在这里是截不到的。

读书人网 >VC/MFC

热点推荐