assch
19-07-2010, 02:33
Эфект открывания и закрывания основного окна работает нормально
А вот дочернее окно при закрывании если оно находится в зоне основного окна портит этот эфект
Я специально чуть развёл окна чтобы было видно что вне зоны окна оно закрывается с эфектом
а вот в зоне окна этот эфект плавного закрывания не работает
Можно это исправить или эта фишка с дочерним окном не пройдёт?
Можно конечно это сделать создав ещё один экзешник но просто хочется чтобы было всё в одном зкзешнике
#include <GUIConstants.au3>
Global $2
$1 = GUICreate("1" ,-1 ,-1 ,300 ,300)
$But = GUICtrlCreateButton("1", 50, 50, 80, 40 , $BS_FLAT)
DllCall("User32.dll","long","AnimateWindow","hwnd",$1,"long",500,"long",0x10)
GUISetState ()
While 1
$iMsg = GUIGetMsg(1)
Select
Case $iMsg[0] = $GUI_EVENT_CLOSE
If $iMsg[1] = $2 Then
DllCall("User32.dll","long","AnimateWindow","hwnd",$2,"long",500,"long",0x10+0x10000)
ElseIf $iMsg[1] = $1 Then
DllCall("User32.dll","long","AnimateWindow","hwnd",$1,"long",500,"long",0x10+0x10000)
Exit
EndIf
Case $iMsg[0] = $But
Function()
EndSelect
Wend
Func Function()
$2 = GUICreate("2", -1, -1, 500, 500, -1, -1, $1)
GUISetBkColor (0xffffff)
DllCall("User32.dll","long","AnimateWindow","hwnd",$2,"long",500,"long",0x10)
GUISetState()
EndFunc
А вот дочернее окно при закрывании если оно находится в зоне основного окна портит этот эфект
Я специально чуть развёл окна чтобы было видно что вне зоны окна оно закрывается с эфектом
а вот в зоне окна этот эфект плавного закрывания не работает
Можно это исправить или эта фишка с дочерним окном не пройдёт?
Можно конечно это сделать создав ещё один экзешник но просто хочется чтобы было всё в одном зкзешнике
#include <GUIConstants.au3>
Global $2
$1 = GUICreate("1" ,-1 ,-1 ,300 ,300)
$But = GUICtrlCreateButton("1", 50, 50, 80, 40 , $BS_FLAT)
DllCall("User32.dll","long","AnimateWindow","hwnd",$1,"long",500,"long",0x10)
GUISetState ()
While 1
$iMsg = GUIGetMsg(1)
Select
Case $iMsg[0] = $GUI_EVENT_CLOSE
If $iMsg[1] = $2 Then
DllCall("User32.dll","long","AnimateWindow","hwnd",$2,"long",500,"long",0x10+0x10000)
ElseIf $iMsg[1] = $1 Then
DllCall("User32.dll","long","AnimateWindow","hwnd",$1,"long",500,"long",0x10+0x10000)
Exit
EndIf
Case $iMsg[0] = $But
Function()
EndSelect
Wend
Func Function()
$2 = GUICreate("2", -1, -1, 500, 500, -1, -1, $1)
GUISetBkColor (0xffffff)
DllCall("User32.dll","long","AnimateWindow","hwnd",$2,"long",500,"long",0x10)
GUISetState()
EndFunc