视图界面上有一带菜单的主对话框,以及点击菜单后产生的一些子对话框,我想让鼠标在这些对话框上点击都无效,只能通过键盘输入。我的这些对话框都有一个派生了的对话框基类。

解决方案 »

  1.   

    在PreTranslateMessage中截获鼠标消息
      

  2.   

    隐藏鼠标!?在PreTranslateMessage中截获鼠标消息需要截获一大堆鼠标的消息!呵呵,不过这样也能自主控制!
      

  3.   

    在共同的对话框基类中映射PreTranslateMessage/WindowProc
    截取鼠标单击消息,使其无效。
      

  4.   

    重载该函数,对消息进行屏蔽,示例代码如下:BOOL CDddDlg::PreTranslateMessage(MSG *pMsg)
    {
     if(pMsg->message==WM_LBUTTONDOWN) return TRUE;  //屏蔽鼠标左键
     if(pMsg->message==WM_RBUTTONDOWN) return TRUE;  //屏蔽鼠标右键
     if(pMsg->message==WM_LBUTTONDBLCLK) return TRUE;  //屏蔽鼠标左键双击 
     else
        return CDialog::PreTranslateMessage(pMsg);}