在 MFC Web 浏览器控件中禁用键盘快捷键的方法
Posted
技术标签:
【中文标题】在 MFC Web 浏览器控件中禁用键盘快捷键的方法【英文标题】:Ways to disable keyboard shortcuts in MFC web browser control 【发布时间】:2015-04-14 17:07:38 【问题描述】:我将 MFC 的 web browser control 添加到我的基于对话框的 MFC 项目中,它为我提供了 IE Web 浏览器的功能。它工作正常,除了我遇到了一个问题。 IE 控件带有自己的键盘快捷键,例如 F5 用于刷新,或 Ctrl+P 用于打印,或 Ctrl+O 用于打开等。我不需要这些,因为我在内部加载它并且它不应该支持大多数IE浏览器功能。问题是如何禁用这些键盘快捷键?
PS。请注意,我不想禁用此控件的所有键盘输入。例如,我希望用户能够使用箭头键或向上翻页、向下翻页等滚动它。
【问题讨论】:
【参考方案1】:我相信您将不得不重写 TranslateAccelerator 方法。使用 MFC WebBrowser 控件时,没有一个属性可以设置为禁用键盘快捷键。
提供的代码禁用 F5 键的处理,您必须在覆盖的 TranslateAccelerator 中实现您希望禁用的每个快捷方式/加速器。
BrowserControl::TranslateAccelerator(MSG *pMsg, DWORD dwFlags)
HRESULT result= S_FALSE;
if (pMsg && pMsg->message == WM_KEYDOWN && pMsg->wParam == VK_F5)
// Return S_OK to indicate no more handling is needed on the message
result= S_OK;
return result;
【讨论】:
谢谢。我试图避免手动操作,即遍历控件允许的所有可能的键。以上是关于在 MFC Web 浏览器控件中禁用键盘快捷键的方法的主要内容,如果未能解决你的问题,请参考以下文章