怎么屏蔽对话框的Enter和Esc事件
如何屏蔽对话框的Enter和Esc事件
就我所知,有两种方法:
1) 在PreTranslateMessage()中预处理按键消息,遇到Esc或Enter就返回TRUE
2) 重载OnOK()和OnCancel(),把内容置空
这两种方法需要可以实现效果,但都有副作用
方法1造成在编辑框内也无法输入Enter
方法2造成点击X按钮也无法关闭窗口
请教正确的方式应该是怎么做?
------解决方案--------------------
方法一中编辑框设置want return属性
------解决方案--------------------
1.PreTranslateMessage() 里面处理的时候应该通过Message判断窗口m_hWnd,不能把所有窗口的WM_RETURN消息全部截获啊!
2.第二种我一般也是这么做的,但是把窗口上得关闭按钮设置掉,不用它,直接在界面上再加一个按钮,里面使用CDialog::OnCancel();
------解决方案--------------------
看来红色字体挂掉了。呵呵
就我所知,有两种方法:
1) 在PreTranslateMessage()中预处理按键消息,遇到Esc或Enter就返回TRUE
2) 重载OnOK()和OnCancel(),把内容置空
这两种方法需要可以实现效果,但都有副作用
方法1造成在编辑框内也无法输入Enter
方法2造成点击X按钮也无法关闭窗口
请教正确的方式应该是怎么做?
------解决方案--------------------
方法一中编辑框设置want return属性
------解决方案--------------------
1.PreTranslateMessage() 里面处理的时候应该通过Message判断窗口m_hWnd,不能把所有窗口的WM_RETURN消息全部截获啊!
2.第二种我一般也是这么做的,但是把窗口上得关闭按钮设置掉,不用它,直接在界面上再加一个按钮,里面使用CDialog::OnCancel();
------解决方案--------------------
看来红色字体挂掉了。呵呵
- C/C++ code
void CDemoDlg::OnClose() { DestroyWindow(); CDialog::OnClose(); }