22 сент. 2010 г.

WM_ACTIVATE

WM_ACTIVATE посылается как активизируемому, так и дезактивизируемому окну. Если окно активизируется и не свернуто, функция DefWindowProc устанавливает фокус клавиатуры окну. Если окно активизировано щелчком мыши, то оно получает сообщение WM_MOUSEACTIVATE.
fActive = LOWORD(wParam);  // флаг активизации 
fMinimized = (BOOL) HIWORD(wParam); // флаг свернутости
hwndPrevious = (HWND) lParam;  // дескриптор окна
Параметры:

fActive Значение из младшего слова wParam. Определяет, активизируется окно или дезактивизируется. Принимает одно из следующих значений:

WA_ACTIVE Окно активизировано другим методом, нежели щелчек мыши (например вызовом функции SetActiveWindow или при помощи клавиатуры).
WA_CLICKACTIVE Окно активизировано щелчком мыши.
WA_INACTIVE Окно дезактивизировано.
fMinimized Старшее слово wParam. Ненулевое значение указывает на то, что окно свернуто.
hwndPrevious Если младшее слово wParam – WA_INACTIVE, то hwndPrevious – дескриптор активизируемого окна; если младшее слово wParam – WA_ACTIVE или WA_CLICKACTIVE, то hwndPrevious – дескриптор дезактивизируемого окна. Этот дескриптор может быть нулевым.
Возвращаемые значения:
Если приложение обрабатывает это сообщение, оно должно возвратить 0.
Смотрите также:
DefWindowProc, SetActiveWindow, WM_MOUSEACTIVATE, WM_NCACTIVATE