首页 > 代码库 > VC MFC 屏蔽ESC和ENTER键关闭对话框

VC MFC 屏蔽ESC和ENTER键关闭对话框

窗体头文件中加入:

1 protected:2     virtual BOOL PreTranslateMessage(MSG* pMsg);  // PreTranslateMessage是消息在送给TranslateMessage函数之前被调用的3 public:4     virtual void OnOK();

 

在CPP中加入:

 1 BOOL CColorDlgDlg::PreTranslateMessage(MSG* pMsg) 2 { 3     //屏蔽ESC关闭窗体/ 4     if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_ESCAPE ) return TRUE; 5     //屏蔽回车关闭窗体,但会导致回车在窗体上失效. 6     //if(pMsg->message==WM_KEYDOWN && pMsg->wParam==VK_RETURN && pMsg->wParam) return TRUE; 7     else 8         return CDialog::PreTranslateMessage(pMsg); 9 }10 void CColorDlgDlg::OnOK()11 {12     //CDialogEx::OnOK();13 }

 

 

MSG 结构体定义如下:
typedef struct tagMSG { // msg
HWND hwnd; // 窗口句柄
UINT message; // 消息
WPARAM wParam; // 消息附加信息,根据消息而定
LPARAM lParam; // 消息附加信息,根据消息而定
DWORD time; // 消息发送时间
POINT pt; // 消息发送时指针的位置(屏幕坐标)
} MSG;