Как активировать фрейм вручную в wxWidgets? - PullRequest
0 голосов
/ 09 января 2012

У меня есть приложение wxWidget.И где-то на моем MainFrame я создаю новый кадр и вызываю Show на нем.Но если пользователь выполнит это действие снова, я не хочу создавать новый фрейм.Я хочу активировать предыдущий.Я храню указатель на созданный фрейм, но не знаю, как отправить ему активацию coomand?Я пытался отправить ActivatedEvent в createFrame-> ProcessEvents, но бессмысленно.

Можно ли отправить команду активации на фрейм wxWidgets?

1 Ответ

0 голосов
/ 10 января 2012

Чтобы получить фокус для окна, вызовите метод SetFocus ()

wxFrame * pFrame = new wxFrame( ... );

...

pFrame->SetFocus();

http://docs.wxwidgets.org/stable/wx_wxwindow.html#wxwindowsetfocus

Интересно, почему ты хочешь это сделать? Это немного странно! Обычно люди оставляют это до того, как ОС делает это, когда пользователь нажимает на окно. На самом деле, wxFrame вряд ли когда-нибудь получит фокус, потому что очень мало (ничего?) Он может с этим поделать. Обычно происходит то, что один из виджетов, содержащихся в фрейме, получает фокус - например, текстовый элемент управления, чтобы пользователь мог начать вводить его.

Может быть, это то, что вы действительно хотите сделать? В этом случае процедура выглядит следующим образом:

...