Нужно знать Windows API, чтобы получить обратный вызов, когда мое приложение активировано - PullRequest
0 голосов
/ 21 мая 2019

У меня есть приложение Windows wxWidgets, я запускаю другое приложение после нажатия определенной кнопки в моем приложении. Это новое запущенное приложение ведет себя как модальное окно, и мое приложение отправляется обратно, но когда пользователь использует Alt + Tab или нажимаетзначок приложения, Моё приложение выходит вперед, тогда как уже открывшееся дочернее приложение должно было быть показано

Я подумал, как вывести приложение на фронт, Теперь я хотел бы знать, могу ли я установить обратный вызов для родителяприложение, которое будет вызываться всякий раз, когда приложение активируется (либо через Alt + Tab, либо на панели задач, либо любым другим способом), поэтому я могу вывести мое дочернее приложение на передний план. Есть ли для этого windwos API?

1 Ответ

1 голос
/ 21 мая 2019

WM_ACTIVATE

Отправляется как активируемому, так и деактивируемому окну.Если окна используют одну и ту же очередь ввода, сообщение отправляется синхронно, сначала в оконную процедуру деактивируемого окна верхнего уровня, затем в оконную процедуру активируемого окна верхнего уровня.Если окна используют разные очереди ввода, сообщение отправляется асинхронно, поэтому окно активируется немедленно.

case WM_ACTIVATE: 
{ 
     // test if window is being activated 
     if(LOWORD(wParam)!=WA_INACTIVE) 
     { 
          // application is being activated 
     } 
     else 
     { 
          // application is being deactivated 
     } 
} 
break;

РЕДАКТИРОВАТЬ:

Если вы хотитечтобы использовать ловушку для отслеживания того, переключено ли окно, вы можете обратиться к этой ссылке.

Событие окна переключения захвата (фокус окна) (Alt + TAB)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...