我想使用此虚函数拦截对话框中按钮单击事件比如IDSAVE,当单击此按钮时,我想获得此ID,并且关闭对话框后返回此ID我是在此函数中使用:
if (pMsg->message==WM_COMMAND)
{
UINT uiSel=LOWORD(pMsg->wParam);
switch(uiSel)
{
case IDSAVE:
EndDialog(uiSel);
return true;
}
}但是运行时根本进不到if里面去
if (pMsg->message==WM_COMMAND)
{
UINT uiSel=LOWORD(pMsg->wParam);
switch(uiSel)
{
case IDSAVE:
EndDialog(uiSel);
return true;
}
}但是运行时根本进不到if里面去
是SDK编程吗
消息拦截很容易出问题的
关注!
{
if (pMsg->message==WM_COMMAND) // 或者将WM_COMMAND该为WM_LBUTTONDOWN试试!
if(pMsg->hwnd==this->GetDlgItem().m_Button) // 看是不是掉了这句! {
UINT uiSel=LOWORD(pMsg->wParam);
switch(uiSel)
{
case IDSAVE:
EndDialog(uiSel);
return true;
}
}
}
{
// TODO: Add your specialized code here and/or call the base class
GetDlgItem(wParam)->EnableWindow(FALSE);
return CDialog::OnCommand(wParam, lParam);
}其中wParam即控件ID
{
if (pMsg->message==WM_LBUTTONDOWN)
{
if(GetDlgItem(IDC_BUTTON1)->GetSafeHwnd() == pMsg->hwnd)
EndDialog(IDOK);
}
return CDialog::PreTranslateMessage(pMsg);
}
技术上可行
符合你的要求吗?
如果不明白
请给我发短消息
请附: 帖子的地址
或在
http://www.338888.com/VCShare/Default.asp
上提问
你可以重载CWnd::WindowProc