我有大量使用wxWidgets的现有代码。主窗口是wxDialog。现在我必须在该对话框中添加一个wxMenuBar。但是,为了做到这一点,窗口应该来自wxFrame。
是否可以在wxDialog中添加wxMenuBar? 如果没有,是否有可能以主窗口从wxFrame派生而不是从wxDialog派生的方式转换现有代码?
答案 0 :(得分:1)
无法向wxDialog添加本机菜单栏,但是,可以使用非本机菜单栏控件,如wxFlatMenuBar(不包含在wxWidgets中),并将其添加到对话框的顶部,就好像这只是另一种控制。另请注意,除了作为非本机菜单栏之外,您还将无法使用某些wxWidgets API来管理它,如wxUpdateUIEvents。
将wxDialog更改为wxFrame时,至少需要考虑几件事。
首先,如果你的对话框是一个模态对话框,你需要手动将新框架设置为模态(使用wxWindow :: MakeModal())而不是调用ShowModal()。
其次,如果你有任何事件处理程序设置肯定(例如OK / Apply按钮)或转义(取消或窗口关闭)事件,你可能需要重写它们来处理窗口行为的变化。