gpt4 book ai didi

mfc - 管理 MFC SDI 多 View 应用程序上的输入焦点

转载 作者:行者123 更新时间:2023-12-02 19:41:43 24 4
gpt4 key购买 nike

我们有一个相对较大的 MFC 应用程序,它使用 SDI 来托管许多动态创建的基于 CView 的 View 。该应用程序的基本结构有点像 Outlook(左侧为 TreeView ,右侧为动态 View )。

我一直对处理应用程序中焦点变化的正确方法感到困惑。例如,我希望能够在焦点位于 TreeView (左 View )时点击“选项卡”,并将焦点移动到右 View 。虽然我可以捕获树 ctrl 中的 tab 键并手动更改为适当的 View ,但我们有很多不同的 View 类型(一些基于 CFormView),以及很多分割器控件,我不确定是否有更通用的处理方法。

我知道在 CDialog- 或 CFormView- 中设置焦点很容易(只需使用 Visual Studio 中的内置 Tab 键顺序管理器),但托管多个 View 类型和分隔栏等的应用程序要复杂得多。例如,如果焦点当前位于表单 View 中,当我按 Tab 键越过表单 View Tab 键顺序的末尾时,如何检测到需要将输入焦点更改为另一个(动态) View ?

干杯并感谢大家。

达伦。

最佳答案

一个明显的答案是简化用户界面本身。

另一种方法是仅在 View 内“选项卡”并要求用户使用鼠标从一个 View 切换到另一个 View ;或者,您可以创建一个 View 菜单项,并让用户通过进行菜单选择来选择 View (可以使用键盘,例如,通过按 Alt-V-1 选择 View 1)。

最后的选择就是您自己提到的:检测 Tab 键并自己处理所有事情。

关于mfc - 管理 MFC SDI 多 View 应用程序上的输入焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1217662/

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