Активное окно является окном верхнего уровня приложения, с которым пользователь работает в настоящее время. Чтобы разрешить пользователю легко идентифицировать активного окна, система помещает его в верхней части Z-порядка и изменяет цвет его строка заголовка и граница с системой активного окна цветами. Только окно верхнего уровня может быть только активного окна. Когда пользователь работает с дочернего окна, система активирует верхнего уровня родительского окна, связанный с окном ребенка.
В тот момент активен только одно окно верхнего уровня в системе. Пользователь активирует окно верхнего уровня, щелкнув его (или один из его дочерних окон) или с помощью клавиши alt + esc или сочетание клавиш alt + tab. Приложение активирует окно верхнего уровня путем вызова функции SetActiveWindow . Другие функции могут привести к активировать различные окна верхнего уровня, включая SetWindowPos, DeferWindowPos, SetWindowPlacementи DestroyWindowсистемы. Хотя приложение может активировать различные окна верхнего уровня в любое время, чтобы избежать путаницы пользователя, он должен сделать это только в ответ на действия пользователя. Приложение использует функцию GetActiveWindow для получения дескриптора в активное окно.
Когда активация меняется от одного приложения к окну верхнего уровня другого окна верхнего уровня, система отправляет сообщения WM_ACTIVATEAPP для обоих приложений, уведомляя их об изменении. Когда активация другой окно верхнего уровня в том же приложении, система посылает оба окна сообщения WM_ACTIVATE.