ALT + TAB в Vista активирует главное окно вместо ранее активного дочернего окна - PullRequest
1 голос
/ 21 июля 2009

Мое приложение (написанное на C ++) использует Win32 (не MFC) для создания пары окон с CreateWindowEx. Главное окно получает рабочий стол как родительский, дочерние окна получают главный экран как родительский.

моя проблема:

  • мое приложение имеет активное дочернее окно
  • Я переключаюсь на другое приложение (за клик, ALT + TAB или другое, не имеет значения)
  • Я переключаюсь обратно в свое приложение с помощью ALT + TAB

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

Это происходит только с Aero (со стеклом и без него). Если я активирую классическую оконную схему, все будет работать так же, как в Windows XP (переключение обратно с помощью ALT + TAB оставляет дочернее окно активным).

Любые предложения или ссылки или другие ресурсы?

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


Похоже, что Vista с классической схемой отправляет WM_ACTIVATE в главное окно и еще один WM_ACTIVATE во второе окно (принадлежит главному окну). При включенной Vista Aero только основные окна получают WM_ACTIVATE. Одд.

...