gpt4 book ai didi

c++ - CHtmlView 类和焦点

转载 作者:行者123 更新时间:2023-11-28 08:30:05 25 4
gpt4 key购买 nike

我有一个用 MFC 编写的 SDI 应用程序。使用拆分窗口将框架分为 1 行和 2 列。以下是行和列的详细信息(R0C0 表示 Row#0 和 Col#0)

  1. R0C0 View 是一个 CFormView,具有多个输入控件,如文本框、组合框等。
  2. R0C1 View 是一个 CHtmlView,它包含与在 R0C0 中具有输入焦点的控件相关的 HTML 内容

我能够更新 HTML 内容并通过我的 MFC 代码调用 Javascript 函数。

问题:当用户单击 R0C1 并继续使用 CHtmlView 时,焦点现在位于 html 页面上。我希望允许用户使用键盘从 R0C1 跳出并返回到 R0C0。你能帮忙吗?用户显然可以使用鼠标单击 R0C0 View ,但我们有一个用户需要使用键盘来使用此功能。

如果问题描述性不够,请告诉我,我会进一步简化。

感谢您的宝贵时间。

谢谢,字节

最佳答案

尝试重载 CHtmlView::OnTranslateAccelerator。我已经成功地使用这个技巧来禁用 F5 键刷新。从 CHtmlView 派生自己的类并重载

virtual HRESULT OnTranslateAccelerator(LPMSG lpMsg, const GUID* pguidCmdGroup, DWORD nCmdID);

像这样:

HRESULT CMyHtmlView::OnTranslateAccelerator(LPMSG lpMsg, const GUID* pguidCmdGroup, DWORD nCmdID)
{
if(lpMsg->message == WM_KEYDOWN && GetAsyncKeyState(VK_TAB) != 0 )
{
// change focus
return S_OK;
}
return CHtmlView::OnTranslateAccelerator( lpMsg, pguidCmdGroup, nCmdID);
}

关于c++ - CHtmlView 类和焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2544398/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com