有没有办法在运行时,在mfc中禁用消息映射处理程序?

时间:2013-12-21 01:52:16

标签: 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, &CGadgetStandardDialog::OnBnClickedButtonStart)
    ON_WM_CLOSE()
    ON_WM_MOVE()
    ON_WM_LBUTTONDOWN()
    //ON_WM_NCHITTEST()
END_MESSAGE_MAP()

我想在运行时禁用其中一些,有没有这样做的方法?

1 个答案:

答案 0 :(得分:0)

如果要将处理传递给默认对话框过程,只需调用基类实现。例如:

HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
   if(m_bDisableProcessing)
    return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
   else
         ......
}