我正在计划一个C ++ wxWidgets GUI,我希望用户能够从笔记本(构成主窗口的大部分)中拉出一个页面,并将其变成自己的单独的第二个窗口。这个想法是,在单屏设置中,您将最大化主窗口并在主窗口中的两个页面之间切换,而在双屏设置中(或者如果您较小的窗口还可以),您可以弹出其中一页,并将其移至第二个屏幕(或两个窗口并排放置)。
我知道wxAuiNotebook类,但是根据文档,它并不完全提供该功能:您只能将页面移至其他选项卡式容器,而不能移至新窗口。相反,使用wxAui,可以取消停靠窗口,但不能将其添加到笔记本中。
因此,我目前的想法是在每个笔记本页面上都包括一个小按钮,该按钮将创建一个与当前笔记本页面完全相同的全新窗口,并从笔记本中删除该页面(反之亦然,在新窗口中)。但这似乎很混乱,因为这将包括破坏一个完全有效的对象,而只是以稍微不同的方式重新创建完全相同的事物。
有人对如何以一种优雅的方式做到这一点有任何建议吗?