本帖最后由 tubaba 于 2017-7-5 15:08 编辑
#include <WinAPI.au3>
#include <WindowsConstants.au3>
#include <ComboConstants.au3>
Global $GUI1 = GUICreate('A')
Global $GUI2 = GUICreate('B')
GUISetState(@SW_SHOW, $GUI1)
GUISetState(@SW_SHOW, $GUI2)
GUIRegisterMsg($WM_ACTIVATE, "WM_ACTIVATE")
Do
Until GUIGetMsg() = -3
Func WM_ACTIVATE($hWnd, $iMsg, $iwParam, $ilParam)
Local $fActive = _WinAPI_LoWord($iwParam)
Local $fMinimized = _WinAPI_HiWord($iwParam)
If $hWnd = $GUI1 Then
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $GUI1 激活 ' & $GUI1 & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $fActive = ' & $fActive & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $fMinimized = ' & $fMinimized & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
ElseIf $hWnd = $GUI2 Then
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $GUI2 激活 ' & $GUI2 & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $fActive = ' & $fActive & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
ConsoleWrite('@@ Debug(' & @ScriptLineNumber & ') : $fMinimized = ' & $fMinimized & @CRLF & '>Error code: ' & @error & @CRLF) ;### Debug Console
EndIf
EndFunc ;==>WM_ACTIVATE
消息: WM_ACTIVATE
参数:
fActive = LOWORD(wParam); // activation flag
fMinimized = (BOOL)HIWORD(wParam); // minimized flag
hwndPrevious= (HWND)lParam; // window handle
fActive 参数表明窗口是被激活还是被取消。该信息保存在 wParam 的低阶字中,可以取以下的值:
WA_CLICKACTIVE 通过鼠标单击激活了该窗口
WA_ACTIVE 通过鼠标以外的工具(如键盘)激活了该窗口
WA_INACTIVE 取消该窗口的激活
fMinimized 参数表明窗口是否为最小化状态。该信息保存在 wParam 的高阶字中,非0表示最小化,0表示不是最小化
hwndPrevious 参数表示其他窗口句柄,根据fActive参数的不同含义不同,fActive为激活时hwndPrevious表示上一个激活的窗口句柄,
fActive为失去激活时hwndPrevious表示下一个激活的窗口句柄,注意hwndPrevious可能为NULL,
该信息保存在 lParam中。 |