如何限制 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。