在 Windows API 中处理 TabControl 控件显示/隐藏的便捷方法是什么?我已经看到对消息 WM_NOTIFY/TCN_SELCHANGE 实施反应的示例,然后遍历所有控件并选择代码显示/隐藏的内容。我希望 Windows 有一个内部机制来处理这个问题,比如创建父级或将控件与特定选项卡相关联。
问问题
34 次
1 回答
3
通常的方法是使用 CreateDialog 创建一个无模式对话框以包含每个选项卡的子控件,然后将该无模式对话框的 HWND(或导致 HWND 的其他值)分配给 TCITEM 的 lParam。
然后在 TCN_SELCHANGE 期间,您将获得足够的信息(TCITEM 的 lParam 是提供的部分之一)以简单地隐藏旧选项卡的无模式对话框并显示新选项卡的无模式对话框。
我更喜欢让这些无模式对话框成为选项卡控件本身的子窗口,因为它可以使用 TCM_ADJUSTRECT 轻松计算位置,而无需使用 MapWindowPoints。
于 2021-01-22T17:36:15.407 回答