Jump to content
Sign in to follow this  
SkellySoul

$WS_EX_LAYERED

Recommended Posts

SkellySoul

Sigh these Animate Window Effects are GREAT but they don't work with $WS_EX_LAYERED which really makes it hard to make a nice GUI :)

This is not all how can you have a nice graphical GUI if you can't skin combo's/inputs/checkbox .etc (buttons are do able by using pictures.)

$hwnd = GUICreate ( "Blend test", 300, 300 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00080000 )
GUISetState ( )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00090000 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040001 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1, "long", 0x00090000 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040002 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1, "long", 0x00090000 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040004 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1, "long", 0x00090000 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040008 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1, "long", 0x00090000 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040005 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1, "long", 0x00090000 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040006 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1, "long", 0x00090000 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040009 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1, "long", 0x00090000 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x0004000a )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1, "long", 0x00090000 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040010 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00050010 )

Share this post


Link to post
Share on other sites
Malkey

Sigh these Animate Window Effects are GREAT but they don't work with $WS_EX_LAYERED which really makes it hard to make a nice GUI :)

This is not all how can you have a nice graphical GUI if you can't skin combo's/inputs/checkbox .etc (buttons are do able by using pictures.)

$hwnd = GUICreate ( "Blend test", 300, 300 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00080000 )
GUISetState ( )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00090000 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040001 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1, "long", 0x00090000 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040002 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1, "long", 0x00090000 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040004 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1, "long", 0x00090000 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040008 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1, "long", 0x00090000 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040005 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1, "long", 0x00090000 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040006 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1, "long", 0x00090000 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040009 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1, "long", 0x00090000 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x0004000a )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1, "long", 0x00090000 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040010 )
DllCall ( "user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00050010 )

This works on XP.

;
#include <WindowsConstants.au3>
$hwnd = GUICreate("Blend test", 300, 300 ,- 1, -1, -1, $WS_EX_LAYERED)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00080000)
GUISetState()
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00090000)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040001)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1, "long", 0x00090000)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040002)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1, "long", 0x00090000)
;

It might be best if you posted a small example script that demonstrates the problem. Unless it is an operating system thing.

Share this post


Link to post
Share on other sites
SkellySoul

This works on XP.

;
#include <WindowsConstants.au3>
$hwnd = GUICreate("Blend test", 300, 300 ,- 1, -1, -1, $WS_EX_LAYERED)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00080000)
GUISetState()
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00090000)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040001)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1, "long", 0x00090000)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040002)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1, "long", 0x00090000)
;

It might be best if you posted a small example script that demonstrates the problem. Unless it is an operating system thing.

#include <WindowsConstants.au3>
$hwnd = GUICreate("Blend test", 300, 300 ,- 1, -1, $WS_POPUP, $WS_EX_LAYERED)
GUICtrlCreatePic("1.bmp" , 0 , 0 , 300 , 300)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00080000)
GUISetState()
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00090000)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040001)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1, "long", 0x00090000)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1000, "long", 0x00040002)
DllCall("user32.dll", "int", "AnimateWindow", "hwnd", $hwnd, "int", 1, "long", 0x00090000)

I got a picture that is transparent in the purple parts but it shows the purple parts everytime it animates.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.