aptyp
Новичок
- Сообщения
- 36
- Репутация
- 0
НЕ могу въехать.
Почему в этом примере при нажатии на кнопку свернуть окно
MsgBox возникает несколько раз и блокирует сворачивание окна?
Почему в этом примере при нажатии на кнопку свернуть окно
MsgBox возникает несколько раз и блокирует сворачивание окна?
Код:
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <MsgBoxConstants.au3>
Opt("GUIOnEventMode", 1)
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("Форма 1", 320, 240, -1, -1)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
GUIRegisterMsg($WM_NCLBUTTONDOWN, '_WM_NCLBUTTONDOWN')
GUIRegisterMsg($WM_SYSCOMMAND, '_WM_SYSCOMMAND')
GUIRegisterMsg($WM_ACTIVATE, '_WM_ACTIVATE')
While 1
Sleep(500)
WEnd
Func _WM_NCLBUTTONDOWN($hWnd, $Msg, $wParam, $lParam)
Switch $wParam
Case 0x14 ; 0x14 = WM_ERASEBKGND
GUIDelete()
MsgBox($MB_TOPMOST, '', 'Нажата кнопка закрыть окно.')
Exit
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NCLBUTTONDOWN
Func _WM_SYSCOMMAND($hWnd, $Msg, $wParam, $lParam)
Switch $wParam
Case 0xF020 ; 0xF020 = SC_MINIMIZE
MsgBox($MB_TOPMOST, '', 'Окно свёрнуто.')
Case 0xF120 ; 0xF120 = SC_RESTORE
MsgBox($MB_TOPMOST, '', 'Окно развёрнуто.')
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_SYSCOMMAND
Func _WM_ACTIVATE($hWnd, $Msg, $wParam, $lParam)
If $wParam = 0 Then MsgBox($MB_TOPMOST, '', 'Окно не активно.')
EndFunc ;==>WM_ACTIVATE