Описание функции
WM_ACTIVATE
Сообщение выполняется при изменении активности окна.
Параметры
Указанные параметры передаются системой.wParam | Двойное слово содержит: младшее слово одно из следующих: WA_INACTIVE = 0 ; окно деактивировано WA_ACTIVE = 1 ; активация любым способом, кроме клика мыши WA_CLICKACTIVE = 2 ; активация кликом мыши старшее слово 0 - окно не свёрнуто 32 - окно свёрнуто |
lParam |
Содержит дескриптор предыдущего окна или NULL |
Примечания
Смотрите функцию SetWindowCallback.Пример
EnableExplicit
Global k = 0
#Window_0 = 0
#txt1 = 0
#WA_ACTIVE = 1
#WA_CLICKACTIVE = 2
#WA_INACTIVE = 0
; ограничение размера окна
Procedure WindowCallback(hWnd, Msg, wParam, lParam)
Protected Active, Minimized, x
Active = wParam & $FFF ; LoWord
Minimized = wParam >> 16 ; HiWord
Select Msg
Case #WM_ACTIVATE ; Минимальный, максимальный размера окна. Смотреть WindowBounds
Debug "_________________"
If Minimized
Debug "минимизация = " + Minimized
Else
Debug "не минимизировано = " + Minimized
EndIf
Select Active
Case #WA_ACTIVE
Debug "активация = " + Active + " - активация любым способом, кроме клика мыши"
Case #WA_INACTIVE
Debug "активация = " + Active + " - деактивировано"
Case #WA_CLICKACTIVE
Debug "активация = " + Active + " - активация кликом мыши"
EndSelect
k + 1
SetWindowTitle(#Window_0, "Вызов " + k + " раз, активация = " + Active) ; флаг Minimized тут всегда = 0
EndSelect
ProcedureReturn #PB_ProcessPureBasicEvents
EndProcedure
If OpenWindow(#Window_0, 0, 0, 600, 200, "WM_ACTIVATE", #PB_Window_SystemMenu | #PB_Window_ScreenCentered | #PB_Window_MinimizeGadget)
TextGadget(#txt1,5, 4, 580, 200,"")
SetGadgetText(#txt1, "Событие WM_ACTIVATE выполняется при изменении активности окна (сворачивание, активирование иного окна).")
SetWindowCallback(@WindowCallback())
Repeat : Until WaitWindowEvent() = #PB_Event_CloseWindow
EndIf