Есть ли способ отключить обработчики карты сообщений во время выполнения, в MFC?

0
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()

Я хочу отключить некоторые из них во время выполнения, есть ли способ?

Теги:
mfc

1 ответ

0

Просто вызовите реализацию базового класса, когда хотите передать обработку в процедуру диалога по умолчанию. Например:

HBRUSH CMyDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
   if(m_bDisableProcessing)
    return CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
   else
         ......
}
  • 0
    Я попробовал это для моего OnMove (), но диалог все еще движется. Что я должен сделать, чтобы отключить перемещение?
  • 1
    Сообщения представляют собой уведомления о том, что что-то произошло или происходит. Например, OnMove не перемещает диалоговое окно, оно просто сообщает вам, что диалоговое окно перемещено. Отключение уведомлений не приведет к отключению событий. Итак, что бы вы ни пытались достичь, вы идете по этому пути с неправильного конца.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню