对话框退出问题 做一个对话框程序,在用户按下ESC键后,程序退出。现在希望这样,当用户按下ESC后,程序首先截获到这个消息,然后进行一些处理,这些处理必须在系统进行默认的ESC处理之前进行,必须保证这个次序。请问这个该怎么做?多谢。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 在PreTranslateMessage中处理if(WM_KEYDOWN == pMsg->message && VK_ESCAPE == pMsg->wParam ){//add your func} 重载PreTranslateMessage函数屏蔽回车和ESC的消息:BOOL C***Dlg::PreTranslateMessage(MSG* pMsg) { if(WM_KEYDOWN == pMsg->message ) { UINT nKey = (int) pMsg->wParam; if(VK_ESCAPE == nKey ) { //do what you want return TRUE ; } } return CDialog::PreTranslateMessage(pMsg); } 1,在程序注册这个热键(1)在头文件里声明afx_msg LONG OnHotKey(WPARAM wParam,LPARAM lParam);(2)在消息映射里添加:ON_MESSAGE(WM_HOTKEY,OnHotKey)(3)在对话框初始化时注册热键RegisterHotKey(this->m_hWnd,1001,0,VK_ESCAPE);(4)定义响应函数LONG CXXXDlg::OnHotKey(WPARAM wParam,LPARAM lParam){ switch(wParam) { case 1001: //你要做的事 break; default: break; } return 0;}2,利用全局的HOOK钩子,先捕捉键盘按键的消息。这方面比较麻烦,你可以搜索下HOOK的资料。 见到对话框上的"取消"按钮了没?双击该按钮,产生取消按钮的Click消息.差生如下void 类名::_NormalInfo::OnBnClickedCancel(){ 这里添加你要进行的处理.. OnCancle();} 在PreTranslateMessage中处理if(WM_KEYDOWN == pMsg->message && VK_ESCAPE == pMsg->wParam ){//add your func}//ding 自绘按钮的问题 VC2003 当中使用animatewindow()为何编译通不过,如何解决? 我想问问关于settimer 深圳的VB高手请进…… 老而有简单问题,没有人帮我 请问这是怎么回事?谢谢 如何在桌面上画一张图? 如何用VC实现ToolTip?请详细一点,谢谢. 寻兼职程序员,开发一个小的工具软件 哪位有TrueTypeFont字体资料? 请问列表框的数据可以修改么,如何修改? listen会一直有效吗?
if(WM_KEYDOWN == pMsg->message && VK_ESCAPE == pMsg->wParam )
{
//add your func
}
BOOL C***Dlg::PreTranslateMessage(MSG* pMsg)
{
if(WM_KEYDOWN == pMsg->message )
{
UINT nKey = (int) pMsg->wParam;
if(VK_ESCAPE == nKey )
{
//do what you want return TRUE ;
}
}
return CDialog::PreTranslateMessage(pMsg);
}
(1)在头文件里声明
afx_msg LONG OnHotKey(WPARAM wParam,LPARAM lParam);
(2)在消息映射里添加:
ON_MESSAGE(WM_HOTKEY,OnHotKey)
(3)在对话框初始化时注册热键
RegisterHotKey(this->m_hWnd,1001,0,VK_ESCAPE);
(4)定义响应函数
LONG CXXXDlg::OnHotKey(WPARAM wParam,LPARAM lParam)
{
switch(wParam)
{
case 1001:
//你要做的事
break;
default:
break;
}
return 0;
}
2,利用全局的HOOK钩子,先捕捉键盘按键的消息。这方面比较麻烦,你可以搜索下HOOK的资料。
双击该按钮,产生取消按钮的Click消息.
差生如下
void 类名::_NormalInfo::OnBnClickedCancel()
{
这里添加你要进行的处理..
OnCancle();
}
if(WM_KEYDOWN == pMsg->message && VK_ESCAPE == pMsg->wParam )
{
//add your func
}
//ding