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 }

方法二:

窗体头文件中加入:

public:

virtual void OnOK();

virtual void OnCancel();

afx_msg void OnClose(); //响应关闭事件!

在CPP中加入:

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;

Copyright © 2088 一键全脑游戏活动站 - 脑力挑战专属福利 All Rights Reserved.
友情链接