方法一:html
窗體頭文件中加入:java
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 }
方法二:post
窗體頭文件中加入:this
public: virtual void OnOK(); virtual void OnCancel(); afx_msg void OnClose(); //響應關閉事件!
在CPP中加入:spa
void CFirstFZDlg::OnOK() { return; } void CFirstFZDlg::OnCancel() { return; } void CFirstFZDlg::OnClose() { // TODO: 在此添加消息處理程序代碼和/或調用默認值 CDialogEx::OnCancel(); //CDialogEx::OnClose(); }
MSG 結構體定義以下:typedef struct tagMSG { // msg HWND hwnd; // 窗口句柄 UINT message; // 消息 WPARAM wParam; // 消息附加信息,根據消息而定 LPARAM lParam; // 消息附加信息,根據消息而定 DWORD time; // 消息發送時間 POINT pt; // 消息發送時指針的位置(屏幕座標)} MSG;