C++ 在mfc中,有没有办法在运行时禁用消息映射处理程序?
我想在运行时禁用其中一些,是否有方法可以这样做?当您想将处理传递给默认对话框过程时,只需调用基类实现即可。例如:C++ 在mfc中,有没有办法在运行时禁用消息映射处理程序?,c++,mfc,C++,Mfc,我想在运行时禁用其中一些,是否有方法可以这样做?当您想将处理传递给默认对话框过程时,只需调用基类实现即可。例如: BEGIN_MESSAGE_MAP(CGadgetStandardDialog, CStandardDialog) ON_WM_CTLCOLOR() ON_WM_TIMER() ON_WM_RBUTTONDOWN() ON_WM_CONTEXTMENU() ON_BN_CLICKED(IDC_BUTTON_START, &CGadget
BEGIN_MESSAGE_MAP(CGadgetStandardDialog, CStandardDialog)
ON_WM_CTLCOLOR()
ON_WM_TIMER()
ON_WM_RBUTTONDOWN()
ON_WM_CONTEXTMENU()
ON_BN_CLICKED(IDC_BUTTON_START, &CGadgetStandardDialog::OnBnClickedButtonStart)
ON_WM_CLOSE()
ON_WM_MOVE()
ON_WM_LBUTTONDOWN()
//ON_WM_NCHITTEST()
END_MESSAGE_MAP()
我在OnMove()中尝试了此操作,但对话框仍在移动。我应该怎么做才能禁用移动?这些消息是发生或正在发生某些事情的通知。例如,OnMove不会移动对话框,它只是通知您对话框已移动。禁用通知不会禁用事件。所以无论你想完成什么,你都是从错误的方向开始的。@CodeDoctorJL WM_MOVING可能更适合你
HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
if(m_bDisableProcessing)
return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
else
......
}