【发布时间】:2009-07-20 14:38:59
【问题描述】:
在 Win32 API C++ 项目中,我有一个带有选项卡控件(3 个选项卡)和 3 个作为选项卡控件子级的对话框的对话框。我使用 DialogBoxParam 加载带有选项卡控件的主对话框,并使用 CreateDialogParam 从资源加载子对话框。主对话框与子对话框一起出现。单击选项卡显示/隐藏正确的子对话框,一切正常。
在搜索了选项卡顺序后,我发现WS_EX_CONTROLPARENT 样式可以在选项卡控件上设置,以使选项卡在子对话框窗口中工作。这很好用,除了一个问题:选项卡控件本身永远不会获得焦点,所以我无法使用键盘切换到选项卡控件以更改为不同的选项卡。键盘焦点通过子对话框,到主对话框上的按钮,然后直接回到子对话框,并且永远不会停止在选项卡控件本身上,所以我必须单击选项卡控件来更改选项卡。这让我疯狂。有什么建议吗?
更新:我设法通过完全忘记WS_EX_CONTROLPARENT 来解决这个问题,并使子对话框成为选项卡控件的兄弟姐妹。唯一的副作用似乎是在重绘期间控件闪烁更多,但仍然希望得到答案,因为使选项卡的子对话框的子项看起来更干净。
【问题讨论】:
标签: winapi visual-c++