Win32 API. Окна - Приоритетные и фоновые окна

ОГЛАВЛЕНИЕ

 

Приоритетные и фоновые окна

Каждый процесс может иметь многопоточное выполнение, и каждый поток может создавать окна. Поток, который создал окно, с которым пользователь в настоящее время работает, называется приоритетным потоком, а окно называется приоритетным окном (foreground window). Все другие потоки являются фоновыми, а созданные ими окна называются фоновыми окнами (background windows).

Каждый поток имеет приоритетный уровень, который определяет количество ПРОЦЕССОРНОГО ВРЕМЕНИ, которое поток занимает. Хотя прикладная программа может устанавливать приоритетный уровень своих потоков, обычно приоритетный поток имеет немного более высокий приоритетный уровень, чем фоновые потоки. Приоритетный поток, поскольку он имеет более высокий приоритет, занимает большее количество ПРОЦЕССОРНОГО ВРЕМЕНИ, чем фоновые потоки. Приоритетный поток имеет обычный базовый приоритет - 9; фоновый поток имеет обычный базовый приоритет - 7.

Пользователь устанавливает приоритетное окно, щелкая мышью по окну или, используя комбинацию клавиш ALT+TAB или ALT+ESC. Прикладная программа устанавливает приоритетное окно, используя функцию SetForegroundWindow. Если новое приоритетное окно - окно верхнего уровня, Windows активизирует его; иначе он активизирует связанное окно верхнего уровня. Прикладная программа отыскивает данные о дескрипторе приоритетного окна, используя функцию GetForegroundWindow. Чтобы проверить, является ли ваше окно прикладной программы активным, сравните дескриптор, возвращенный GetForegroundWindow с дескриптором окна вашей прикладной программы.