如何解决子窗口的按键消息不被加速键处理? 情况是这样的:MDI程序,菜单“删除”项有对应的Delete键加速键,当在浮动的子窗口上(TOOLBAR)某个控件如Edit上按下delete键后竟然也去执行对应加速键菜单响应了,Edit上却没有任何反应。请问各位同仁如何解决?小弟在此谢过。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 重载主框架类的PreTranslateMessage函数:BOOL CMainFrame::PreTranslateMessage(MSG* pMsg){ if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_DELETE) { TranslateMessage(pMsg); DispatchMessage(pMsg); return TRUE; } return CMDIFrameWnd::PreTranslateMessage(pMsg);} 补充一下,按上述做法Delete加速键就完全失效了,如果只想让焦点在Edit控件上时试销,要把判断条件再改一下。 具体没做过,提供点思路,浮动窗口是基于ControlBar的吗?看看mfc得源码,里面可能有向frame转发消息的处理,截获一下看看?例如,重载浮动窗口的PreTranslateMsg函数,看是否先于frame得到delete按键的响应 COM的问题,大家帮帮忙啊! 谁有Libtiff的安装文件呀 (HOOKDLL.DLL): 0xC0000005: Access Violation是什么问题??? 关于静音问题(在线等待) C++ Primer中的vector问题 如何给按钮添加背景图? 如何创建画笔 急急急~~用VTK做三维显示对话框出错 CImage 写入像素但保存的图片确是这个样子 怎样使微软的IE不能用,一直用自己的浏览器,我用PC Security软件都不能锁住IE? 了解CCamand 协议的请进. 一个比较奇怪的问题 大家进来看看。
BOOL CMainFrame::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_DELETE)
{
TranslateMessage(pMsg);
DispatchMessage(pMsg);
return TRUE;
}
return CMDIFrameWnd::PreTranslateMessage(pMsg);
}