【问题标题】:Ways to disable keyboard shortcuts in MFC web browser control在 MFC Web 浏览器控件中禁用键盘快捷键的方法
【发布时间】:2015-04-14 17:07:38
【问题描述】:

我将 MFC 的 web browser control 添加到我的基于对话框的 MFC 项目中,它为我提供了 IE Web 浏览器的功能。它工作正常,除了我遇到了一个问题。 IE 控件带有自己的键盘快捷键,例如 F5 用于刷新,或 Ctrl+P 用于打印,或 Ctrl+O 用于打开等。我不需要这些,因为我在内部加载它并且它不应该支持大多数IE浏览器功能。问题是如何禁用这些键盘快捷键?

PS。请注意,我不想禁用此控件的所有键盘输入。例如,我希望用户能够使用箭头键或向上翻页、向下翻页等滚动它。

【问题讨论】:

    标签: c++ windows internet-explorer mfc


    【解决方案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;
    }
    

    【讨论】:

    • 谢谢。我试图避免手动操作,即遍历控件允许的所有可能的键。
    猜你喜欢
    • 2010-12-31
    • 2011-04-10
    • 2014-06-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 2023-04-02
    • 1970-01-01
    相关资源
    最近更新 更多