描述:
ATL中的消息映射(BEGIN_MSG_MAP~~END_MSG_MAP)只有以下三种类型吗?
// Handler prototypes:
// LRESULT MessageHandler(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL& bHandled);
// LRESULT CommandHandler(WORD wNotifyCode, WORD wID, HWND hWndCtl, BOOL& bHandled);
// LRESULT NotifyHandler(int idCtrl, LPNMHDR pnmh, BOOL& bHandled);
是否只能要手工加入,有类似MFC的ClassWizard吗,我按了Ctrl+W,没有新加入的对话框呀?
同样是Window的系统消息,都是用MESSAGE_HANDLER,可是参数差别大,如何处理呀,请看:
MESSAGE_HANDLER(WM_SIZE, OnSize)
MESSAGE_HANDLER(WM_CTLCOLOR, OnCtlColor)
在MFC下,这两个函数的参数大不相同:
HBRUSH CMyDialog::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
void CMyDialog::OnSize(UINT nType, int cx, int cy)
请问如何统一到 MessageHandler 下面呀,
以上两个问题请高手指点,谢谢!
解决方案1:
在classview中右击控件类选者Add Windows Message Handle...
解决方案2: 要不是这一点,我看大家都不用MFC了
就用WTL中的扩展消息映射宏吧