2012-04-04 33 views
0

主要目标是希望在应用程序的工具栏的绘图区域中绘制Tab,以便笔记本或Tab使用上述空间而不是在工具栏下方。在工具栏上透支?替代想法?

我们使用的框架工作是WxWidgets,C++/C。我环顾四周,但一直没能找到解决方案,或者如果有人已经在工具栏本身内部绘制标签的方法做了类似的方法。

我阅读了一些Microsoft MSDN文章,他们建议不要控制绘制控件。

我今天做了一些测试,并认为我已经想出了一个解决方案。我的解决方案是像正常一样绘制窗口,但是在子窗口中右侧的NoteBook被动态调整大小和重新定位,以便它的标签覆盖在工具栏的顶部,以最有效地使用该区域。我将不得不处理焦点并失去焦点窗口消息,但这是我可以考虑完成任务的最优雅的方式。

任何想法的你可以推荐或问题的我可能会面对以下这种做法。

mockup

回答

1

我会担心使用重叠的部件是这样的。虽然它看起来可能看起来不一样,但我建议您看看wxToolBook,它会将标签放在工具栏中并解决您的问题,您可以使用GetToolBar方法插入自己的工具栏项目。

如果这还不够接近视觉上你正在寻找实现我建议从wxBookCtrlBase派生新控件,然后创建与您可以添加使用wxToolBar::AddControl工具栏自定义绘制选项卡的标签控制什么。