父窗体获取消息问题 对话框上有一个按钮对话框的OnKeyDown就不会掉用我知道是那个按钮具有了焦点,导致对话框的OnKeyDown不会执行有什么办法让他执行呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是对话框上没有任何可以获取焦点的控件,对话框的OnKeyDown就会被调用如果有,焦点总在那些控件上,有什么办法使焦点即使在控件上对话框的OnKeyDown也会被调用 重载PreTranslateMessage(MSG* pMsg)在里面判断处理. 楼上是这样吗?但是我不明白这和重载 OnOK()函数达到的效果有什么区别BOOL CCRichEditCtrlDlg::PreTranslateMessage(MSG* pMsg) { if(WM_KEYDOWN == pMsg->message) { int nKey = (int) pMsg->wParam; if(VK_ESCAPE == nKey) return true; } return CDialog::PreTranslateMessage(pMsg); } 顶,重载PreTranslateMessage在得到KeyDown之前首先截获他,然后对其进行判断 重载PreTranslateMessage KeyDown的时候不一定是VK_RETURN吧汗 既然功能实现了那还有什么问题呢?条条大路通罗马 PreTranslateMessage中拦截按键好了 在子窗体的响应函数中PostMessage(::AfxGetApp()->m_pMainWin,WM_KEYDOWN,wParam,lParam) 如何编程控制没有开发包的电视盒 窗口关闭问题 如何获得u盘或者移动硬盘插入拔出消息? buffer overrun has detected 原来是单文档多界面的程序是否可以改成多文档多界面 流媒体文件的编码格式 怎样知道某进程是否在运行? 如何读取上网纪录 静态函数的同步问题 DCOM问题。Win2000下的服务器应怎样配置,才能使客户机调用服务器端的DCOM。 急求。。。。。。。。。。 如何用VC 将Excel文件数据 导入 SQL-server中? 一个关于拦截API的动态库
如果有,焦点总在那些控件上,有什么办法使焦点即使在控件上对话框的OnKeyDown也会被调用
BOOL CCRichEditCtrlDlg::PreTranslateMessage(MSG* pMsg)
{
if(WM_KEYDOWN == pMsg->message)
{
int nKey = (int) pMsg->wParam;
if(VK_ESCAPE == nKey)
return true;
} return CDialog::PreTranslateMessage(pMsg);
}
PostMessage(::AfxGetApp()->m_pMainWin,WM_KEYDOWN,wParam,lParam)