Мое приложение (написанное на C ++) использует Win32 (не MFC) для создания пары окон с CreateWindowEx. Главное окно получает рабочий стол как родительский, дочерние окна получают главный экран как родительский.
моя проблема:
- мое приложение имеет активное дочернее окно
- Я переключаюсь на другое приложение (за клик, ALT + TAB или другое, не имеет значения)
- Я переключаюсь обратно в свое приложение с помощью ALT + TAB
Теперь активируется главное окно моего приложения, а не дочернее окно. Если я переключаюсь назад, щелкая запись панели задач, дочернее окно остается активным.
Это происходит только с Aero (со стеклом и без него). Если я активирую классическую оконную схему, все будет работать так же, как в Windows XP (переключение обратно с помощью ALT + TAB оставляет дочернее окно активным).
Любые предложения или ссылки или другие ресурсы?
(Пример кода предоставить довольно сложно, поскольку элементы пользовательского интерфейса заключены в классы с собственными типами данных для строк и т. Д.)
Похоже, что Vista с классической схемой отправляет WM_ACTIVATE в главное окно и еще один WM_ACTIVATE во второе окно (принадлежит главному окну).
При включенной Vista Aero только основные окна получают WM_ACTIVATE. Одд.