如何限制 MDI 选项卡组的数量
How to limit the number of MDI tab groups
我用 tabbed group 创建了一个 MDI 应用程序。
每次我从标签栏拖放一个标签到视图时,它会创建一个新的标签组,并根据标签组的数量划分视图。但我想让我的应用程序只创建两个选项卡组。
我已经完成了我的工作,将一个新的选项卡组与与拖放选项卡相关的选项卡组重新分组。
但是这个解决方案并不好,因为视图闪烁的时间很短。
我正在寻找更好的解决方案。我知道:拖放选项卡以查看 => 创建新选项卡组是 MDI 选项卡组的默认支持。
如何检查和预防?
在消息 AFX_WM_ON_MOVETABCOMPLETE(已注册 Windows 消息)上完成分离和移动选项卡的完整工作,此消息由 CMDIClientAreaWnd::OnMoveTabComplete 处理。
因此您可以子类化您的 MDI 客户端 window 并且您可以拦截消息。
检查你想要什么,如果你不想允许拖放操作 return.
如果要允许此拖放操作,只需调用基础实现 CMDIClientAreaWnd::OnMoveTabComplete。
我用 tabbed group 创建了一个 MDI 应用程序。
每次我从标签栏拖放一个标签到视图时,它会创建一个新的标签组,并根据标签组的数量划分视图。但我想让我的应用程序只创建两个选项卡组。
我已经完成了我的工作,将一个新的选项卡组与与拖放选项卡相关的选项卡组重新分组。
但是这个解决方案并不好,因为视图闪烁的时间很短。
我正在寻找更好的解决方案。我知道:拖放选项卡以查看 => 创建新选项卡组是 MDI 选项卡组的默认支持。
如何检查和预防?
在消息 AFX_WM_ON_MOVETABCOMPLETE(已注册 Windows 消息)上完成分离和移动选项卡的完整工作,此消息由 CMDIClientAreaWnd::OnMoveTabComplete 处理。
因此您可以子类化您的 MDI 客户端 window 并且您可以拦截消息。 检查你想要什么,如果你不想允许拖放操作 return.
如果要允许此拖放操作,只需调用基础实现 CMDIClientAreaWnd::OnMoveTabComplete。