wxDialog с помощью wxMenuBar - PullRequest
1 голос
/ 28 октября 2010

У меня есть тонны существующего кода, использующего wxWidgets.Главное окно - это wxDialog.Теперь я должен добавить wxMenuBar в этот диалог.Но, чтобы сделать это, окно должно быть получено из wxFrame.

Можно ли добавить wxMenuBar в wxDialog?Если нет, возможно ли преобразовать существующий код таким образом, чтобы основное окно было получено из wxFrame вместо wxDialog?

1 Ответ

1 голос
/ 30 октября 2010

Невозможно добавить собственную строку меню в wxDialog, однако, можно использовать не собственный элемент управления строки меню, такой как wxFlatMenuBar (не входит в wxWidgets), и добавить его в верхнюю часть диалога, как если бы это был просто еще один контроль. Также обратите внимание, что помимо того, что вы не являетесь нативной строкой меню, вы также не сможете использовать некоторые API wxWidgets для управления ею, такие как wxUpdateUIEvents.

При смене wxDialog на wxFrame необходимо учитывать как минимум пару вещей.

Во-первых, если ваше диалоговое окно является модальным, вам нужно будет вручную установить новый фрейм как модальный (используя wxWindow :: MakeModal ()) вместо вызова ShowModal ().

Во-вторых, если у вас были настроены какие-либо обработчики событий для утвердительных (например, кнопка OK / Применить) или escape (Отмена или закрытие окна), вам, вероятно, придется переписать их для обработки изменений в поведении окна.

...