taurus Posted March 24, 2015 Share Posted March 24, 2015 expandcollapse popup; PNG work around by Zedna #include <GDIPlus.au3> #include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> #include <WinAPI.au3> #include <WindowsConstants.au3> #include <GUIConstantsEx.au3> #include <WinAPI.au3> #include <WindowsConstants.au3> #include <WindowsConstants.au3> ; Create GUI Global $g_hGUI = GUICreate("Show PNG", 512, 512, -1, -1, -1, $WS_EX_LAYERED) GUISetBkColor(0xff00ff) _WinAPI_SetLayeredWindowAttributes($g_hGUI, 0xff00ff, 255) ; Load PNG image _GDIPlus_Startup() Global $g_hImage = _GDIPlus_ImageLoadFromFile("logo.png") Global $g_hGraphic = _GDIPlus_GraphicsCreateFromHWND($g_hGUI) GUIRegisterMsg($WM_PAINT, "MY_WM_PAINT") GUISetState(@SW_SHOW) ; Loop until the user exits. While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop EndSwitch WEnd ; Clean up resources _GDIPlus_GraphicsDispose($g_hGraphic) _GDIPlus_ImageDispose($g_hImage) _GDIPlus_Shutdown() ; Draw PNG image Func MY_WM_PAINT($hWnd, $iMsg, $wParam, $lParam) #forceref $hWnd, $iMsg, $wParam, $lParam _WinAPI_RedrawWindow($g_hGUI, 0, 0, $RDW_UPDATENOW) _GDIPlus_GraphicsDrawImage($g_hGraphic, $g_hImage, 0, 0) _WinAPI_RedrawWindow($g_hGUI, 0, 0, $RDW_VALIDATE) Return $GUI_RUNDEFMSG EndFunc ;==>MY_WM_PAINT IMAGE :: http://www.hooddonz.com/uploads/3/4/9/0/3490457/3227883.png and here is my problem :: all that pink outline is ugly as hell , how can i fix that? Link to comment Share on other sites More sharing options...
UEZ Posted March 24, 2015 Share Posted March 24, 2015 You can use a brighter transparent / bg color, e.g. 0xF1F1F1. What do you want to code? Just displaying an image? Or adding additional controls to the GUI? Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ Link to comment Share on other sites More sharing options...
taurus Posted March 24, 2015 Author Share Posted March 24, 2015 (edited) just display the image and a countdown timer in middle on top of the image. thats all. PS : i tryed brighter background , but it looks ugly on darker backgrounds now. EDIT : There must be "cleaner" way to get rid of that terrible *antialiasing* around the image? i have been struggling with this problem for years to be honest. Edited March 24, 2015 by taurus Link to comment Share on other sites More sharing options...
Somerset Posted March 24, 2015 Share Posted March 24, 2015 doesn't autoit have issues with 256 transparency? I change the image format from 32 bit to 16 bit. See how that make a difference. Link to comment Share on other sites More sharing options...
taurus Posted March 24, 2015 Author Share Posted March 24, 2015 how did you change from 32bit to 16bit? png ? Link to comment Share on other sites More sharing options...
Solution UEZ Posted March 24, 2015 Solution Share Posted March 24, 2015 (edited) Then try this: expandcollapse popup; PNG work around by Zedna #include <GDIPlus.au3> #include <GUIConstantsEx.au3> #include <MsgBoxConstants.au3> #include <WinAPISys.au3> #include <WindowsConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> Global Const $SC_DRAGMOVE = 0xF012 ; Create GUI Global $g_hGUI = GUICreate("Show PNG", 512, 512, -1, -1, $WS_POPUP, $WS_EX_LAYERED) Global $g_hGUI_Child = GUICreate("", 512, 512, 0, 0, $WS_POPUP, BitOR($WS_EX_LAYERED, $WS_EX_MDICHILD), $g_hGUI) GUISetBkColor(0x888888, $g_hGUI_Child) Global $iLabel = GUICtrlCreateLabel("", 200, 200, 112, 32, BitOR($SS_CENTERIMAGE, $SS_CENTER)) GUICtrlSetFont(-1, 20, 400, 0, "Arial", 6) GUICtrlSetColor(-1, 0xF0F0F0) GUICtrlSetBkColor(-1, 0x404040) GUISetState(@SW_SHOW, $g_hGUI) GUISetState(@SW_SHOW, $g_hGUI_Child) _WinAPI_SetLayeredWindowAttributes($g_hGUI_Child, 0x888888) ; Load PNG image _GDIPlus_Startup() Global $g_hImage = _GDIPlus_ImageLoadFromFile("logo.png") ;~ Global $g_hImage = _GDIPlus_BitmapCreateFromMemory(InetRead("http://www.hooddonz.com/uploads/3/4/9/0/3490457/3227883.png")) Global $g_hGDIBitmap = _GDIPlus_BitmapCreateHBITMAPFromBitmap($g_hImage) _WinAPI_UpdateLayeredWindowEx($g_hGUI, -1, -1, $g_hGDIBitmap, 255, True) GUIRegisterMsg($WM_LBUTTONDOWN, "_WM_LBUTTONDOWN") AdlibRegister("Timer", 1000) ; Loop until the user exits. While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop EndSwitch WEnd AdlibUnRegister("Timer") ; Clean up resources _GDIPlus_ImageDispose($g_hImage) _WinAPI_DeleteObject($g_hGDIBitmap) _GDIPlus_Shutdown() GUIDelete() Func Timer() GUICtrlSetData($iLabel, @SEC) EndFunc Func _WM_LBUTTONDOWN($hWnd, $iMsg, $wParam, $lParam) _SendMessage($g_hGUI, $WM_SYSCOMMAND, $SC_DRAGMOVE, 0) EndFunc ;==>_WM_LBUTTONDOWN Edited March 24, 2015 by UEZ taurus 1 Please don't send me any personal message and ask for support! I will not reply! Selection of finest graphical examples at Codepen.io The own fart smells best! ✌Her 'sikim hıyar' diyene bir avuç tuz alıp koşma!¯\_(ツ)_/¯ ٩(●̮̮̃•̃)۶ ٩(-̮̮̃-̃)۶ૐ Link to comment Share on other sites More sharing options...
taurus Posted March 24, 2015 Author Share Posted March 24, 2015 thank you UEZ! that is the best quality ! wow , so nice. THANKS! Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now