gpt4 book ai didi

winapi - 带有嵌套对话框的选项卡控件中的选项卡顺序 (WS_EX_CONTROLPARENT)

转载 作者:行者123 更新时间:2023-12-02 08:11:21 24 4
gpt4 key购买 nike

在 Win32 API C++ 项目中,我有一个带有选项卡控件(3 个选项卡)的对话框和作为该选项卡控件的子项的 3 个对话框。我使用 DialogBoxParam 加载带有选项卡控件的主对话框,并使用 CreateDialogParam 从资源加载子对话框。主对话框与子对话框一起出现。单击选项卡显示/隐藏正确的子对话框,一切正常。

在搜索有关 Tab 键顺序后,我找到了要在选项卡控件上设置的 WS_EX_CONTROLPARENT 样式,以使 Tab 键能够进入子对话框窗口。这很有效,除了一个问题:选项卡控件本身永远不会获得焦点,因此我无法使用键盘切换到选项卡控件以更改为不同的选项卡。键盘焦点穿过子对话框,到达主对话框上的按钮,然后直接返回子对话框,并且永远不会停留在选项卡控件本身上,因此我必须单击选项卡控件来更改选项卡。这让我疯狂。有什么建议吗?

更新:我通过完全忘记 WS_EX_CONTROLPARENT 并将子对话框设为选项卡控件的同级来解决该问题。唯一的副作用似乎是在重新绘制期间控件的闪烁更多,但仍然希望得到答案,因为使选项卡的子对话框子项看起来更干净。

最佳答案

它不干净。创建选项卡式对话框的推荐方法是使选项卡页成为对话框的子项。选项卡控件仅控制哪些页面可见,但不是其父页面。

当您尝试在对话框上使用 XP 主题时,这一点尤其重要。

WS_EX_CONTROLPARENT 是一种旨在在实际“选项卡”对话框上设置的样式。

我想您已经在选项卡控件本身上设置了WS_TABSTOP?我想象 WS_TABSTOPWS_EX_CONTROLPARENT 当同时设置时会发生冲突,因为它们告诉对话框管理器在选项卡循环到达控件时执行两个完全不同且冲突的操作。

最后,我完全看不出闪烁应该增加的任何原因,因为对话框页面是对话框的子项而不是选项卡控件。

关于winapi - 带有嵌套对话框的选项卡控件中的选项卡顺序 (WS_EX_CONTROLPARENT),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1153981/

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