AlmarM Posted May 26, 2010 Share Posted May 26, 2010 Hiya! When im drawing a picture into my GUI my other controls just freeze. *Its about the: "If FileExists($PicResized) Then GUICtrlCreatePic($PicResized, 0, 0, 320, 460)"* This is what I have: $MainGUI = GUICreate("", 320, 460) If FileExists($PicResized) Then GUICtrlCreatePic($PicResized, 0, 0, 320, 460) $Start = GUICtrlCreateMenu("Start") $ClearData = GUICtrlCreateMenuItem("Wis alle gegevens", $Start) $PCData = GUICtrlCreateMenuItem("Computer gegevens", $Start) $ChangePic = GUICtrlCreateMenuItem("Achtergrond plaatje", $Start) GUICtrlCreateMenuItem("", $Start) $Exit = GUICtrlCreateMenuItem("Afsluiten", $Start) $Notepad = GUICtrlCreateMenu("Kladblok") $Clear = GUICtrlCreateMenuItem("Wis tekst", $Notepad) GUICtrlCreateMenuItem("", $Notepad) $Open = GUICtrlCreateMenuItem("Openen", $Notepad) $Save = GUICtrlCreateMenuItem("Opslaan", $Notepad) GUICtrlCreateMenuItem("", $Notepad) $Count = GUICtrlCreateMenuItem("Woorden teller", $Notepad) $Settings = GUICtrlCreateMenuItem("Instellingen", $Notepad) $Edit = GUICtrlCreateEdit("", 10, 10, 300, 200) GUICtrlSetFont($Edit, 9, "", "", "Lucida Console") Local $Left = 35, $Top = 230 For $i = 0 To UBound($Buttons) - 1 $Buttons[$i] = GUICtrlCreateButton("< X >", $Left, $Top, 50, 50, 0x0040 + 0x1000) $Left += 100 If $Left > 300 Then $Left = 35 $Top += 70 EndIf Next This isnt working. Eitherway, this will work, but I need to hover over my controls first: $MainGUI = GUICreate("", 320, 460) $Start = GUICtrlCreateMenu("Start") $ClearData = GUICtrlCreateMenuItem("Wis alle gegevens", $Start) $PCData = GUICtrlCreateMenuItem("Computer gegevens", $Start) $ChangePic = GUICtrlCreateMenuItem("Achtergrond plaatje", $Start) GUICtrlCreateMenuItem("", $Start) $Exit = GUICtrlCreateMenuItem("Afsluiten", $Start) $Notepad = GUICtrlCreateMenu("Kladblok") $Clear = GUICtrlCreateMenuItem("Wis tekst", $Notepad) GUICtrlCreateMenuItem("", $Notepad) $Open = GUICtrlCreateMenuItem("Openen", $Notepad) $Save = GUICtrlCreateMenuItem("Opslaan", $Notepad) GUICtrlCreateMenuItem("", $Notepad) $Count = GUICtrlCreateMenuItem("Woorden teller", $Notepad) $Settings = GUICtrlCreateMenuItem("Instellingen", $Notepad) $Edit = GUICtrlCreateEdit("", 10, 10, 300, 200) GUICtrlSetFont($Edit, 9, "", "", "Lucida Console") Local $Left = 35, $Top = 230 For $i = 0 To UBound($Buttons) - 1 $Buttons[$i] = GUICtrlCreateButton("< X >", $Left, $Top, 50, 50, 0x0040 + 0x1000) $Left += 100 If $Left > 300 Then $Left = 35 $Top += 70 EndIf Next If FileExists($PicResized) Then GUICtrlCreatePic($PicResized, 0, 0, 320, 460) Whats a possible sollution? Minesweeper A minesweeper game created in autoit, source available. _Mouse_UDF An UDF for registering functions to mouse events, made in pure autoit. 2D Hitbox Editor A 2D hitbox editor for quick creation of 2D sphere and rectangle hitboxes. Link to comment Share on other sites More sharing options...
CodyBarrett Posted May 26, 2010 Share Posted May 26, 2010 FileExists is a blocking function isn't it? :S i'm not sure how to get past that... [size="1"][font="Tahoma"][COMPLETED]-----[FAILED]-----[ONGOING]VolumeControl|Binary Converter|CPU Usage| Mouse Wrap |WinHide|Word Scrammbler|LOCKER|SCREEN FREEZE|Decisions Decisions|Version UDF|Recast Desktop Mask|TCP Multiclient EXAMPLE|BTCP|LANCR|UDP serverless|AIOCR|OECR|Recast Messenger|AU3C|Tik-Tak-Toe|Snakes & Ladders|BattleShips|TRON|SNAKE_____________________[u]I love the Helpfile it is my best friend.[/u][/font][/size] Link to comment Share on other sites More sharing options...
Malkey Posted May 26, 2010 Share Posted May 26, 2010 (edited) From help file under GUICtrlCreatePic."If a picture is set as a background picture, as the other controls will overlap, it's important to disable the pic control and create it after the others controls: GuiCtrlSetState(-1,$GUI_DISABLE)." Edited May 26, 2010 by Malkey Link to comment Share on other sites More sharing options...
wolf9228 Posted May 26, 2010 Share Posted May 26, 2010 (edited) Hiya! When im drawing a picture into my GUI my other controls just freeze. *Its about the: "If FileExists($PicResized) Then GUICtrlCreatePic($PicResized, 0, 0, 320, 460)"* This is what I have: $MainGUI = GUICreate("", 320, 460) If FileExists($PicResized) Then GUICtrlCreatePic($PicResized, 0, 0, 320, 460) $Start = GUICtrlCreateMenu("Start") $ClearData = GUICtrlCreateMenuItem("Wis alle gegevens", $Start) $PCData = GUICtrlCreateMenuItem("Computer gegevens", $Start) $ChangePic = GUICtrlCreateMenuItem("Achtergrond plaatje", $Start) GUICtrlCreateMenuItem("", $Start) $Exit = GUICtrlCreateMenuItem("Afsluiten", $Start) $Notepad = GUICtrlCreateMenu("Kladblok") $Clear = GUICtrlCreateMenuItem("Wis tekst", $Notepad) GUICtrlCreateMenuItem("", $Notepad) $Open = GUICtrlCreateMenuItem("Openen", $Notepad) $Save = GUICtrlCreateMenuItem("Opslaan", $Notepad) GUICtrlCreateMenuItem("", $Notepad) $Count = GUICtrlCreateMenuItem("Woorden teller", $Notepad) $Settings = GUICtrlCreateMenuItem("Instellingen", $Notepad) $Edit = GUICtrlCreateEdit("", 10, 10, 300, 200) GUICtrlSetFont($Edit, 9, "", "", "Lucida Console") Local $Left = 35, $Top = 230 For $i = 0 To UBound($Buttons) - 1 $Buttons[$i] = GUICtrlCreateButton("< X >", $Left, $Top, 50, 50, 0x0040 + 0x1000) $Left += 100 If $Left > 300 Then $Left = 35 $Top += 70 EndIf Next This isnt working. Eitherway, this will work, but I need to hover over my controls first: $MainGUI = GUICreate("", 320, 460) $Start = GUICtrlCreateMenu("Start") $ClearData = GUICtrlCreateMenuItem("Wis alle gegevens", $Start) $PCData = GUICtrlCreateMenuItem("Computer gegevens", $Start) $ChangePic = GUICtrlCreateMenuItem("Achtergrond plaatje", $Start) GUICtrlCreateMenuItem("", $Start) $Exit = GUICtrlCreateMenuItem("Afsluiten", $Start) $Notepad = GUICtrlCreateMenu("Kladblok") $Clear = GUICtrlCreateMenuItem("Wis tekst", $Notepad) GUICtrlCreateMenuItem("", $Notepad) $Open = GUICtrlCreateMenuItem("Openen", $Notepad) $Save = GUICtrlCreateMenuItem("Opslaan", $Notepad) GUICtrlCreateMenuItem("", $Notepad) $Count = GUICtrlCreateMenuItem("Woorden teller", $Notepad) $Settings = GUICtrlCreateMenuItem("Instellingen", $Notepad) $Edit = GUICtrlCreateEdit("", 10, 10, 300, 200) GUICtrlSetFont($Edit, 9, "", "", "Lucida Console") Local $Left = 35, $Top = 230 For $i = 0 To UBound($Buttons) - 1 $Buttons[$i] = GUICtrlCreateButton("< X >", $Left, $Top, 50, 50, 0x0040 + 0x1000) $Left += 100 If $Left > 300 Then $Left = 35 $Top += 70 EndIf Next If FileExists($PicResized) Then GUICtrlCreatePic($PicResized, 0, 0, 320, 460) Whats a possible sollution? expandcollapse popup#include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> $MainGUI = GUICreate("", 320, 460) $Start = GUICtrlCreateMenu("Start") $ClearData = GUICtrlCreateMenuItem("Wis alle gegevens", $Start) $PCData = GUICtrlCreateMenuItem("Computer gegevens", $Start) $ChangePic = GUICtrlCreateMenuItem("Achtergrond plaatje", $Start) GUICtrlCreateMenuItem("", $Start) $Exit = GUICtrlCreateMenuItem("Afsluiten", $Start) $Notepad = GUICtrlCreateMenu("Kladblok") $Clear = GUICtrlCreateMenuItem("Wis tekst", $Notepad) GUICtrlCreateMenuItem("", $Notepad) $Open = GUICtrlCreateMenuItem("Openen", $Notepad) $Save = GUICtrlCreateMenuItem("Opslaan", $Notepad) GUICtrlCreateMenuItem("", $Notepad) $Count = GUICtrlCreateMenuItem("Woorden teller", $Notepad) $Settings = GUICtrlCreateMenuItem("Instellingen", $Notepad) $Edit = GUICtrlCreateEdit("", 10, 10, 300, 200) GUICtrlSetFont($Edit, 9, "", "", "Lucida Console") Dim $Buttons[9] Local $Left = 35, $Top = 230 For $i = 0 To UBound($Buttons) - 1 $Buttons[$i] = GUICtrlCreateButton("< X >", $Left, $Top, 50, 50) GuiCtrlSetState(-1,$GUI_ONTOP) $Left += 100 If $Left > 300 Then $Left = 35 $Top += 70 EndIf Next GUISetState() $PicResized = @ScriptDir & "\Untitled.gif" If FileExists($PicResized) Then GUICtrlCreatePic($PicResized, 0, 0, 320, 460) While 1 $msg = GUIGetMsg() If $msg = $GUI_EVENT_CLOSE Then ExitLoop WEnd GUIDelete() Or expandcollapse popup#include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <GDIPlus.au3> Const $Style_Stretch = 1 , $Style_Tile = 2 , $Style_Center = 3 Global $hBitmap , $ImageHeight , $ImageWidth , $Image_Style $MainGUI = GUICreate("", 320, 460) $PicResized = @ScriptDir & "\Untitled.bmp" LoadBitmap_FromFile($PicResized ,$Style_Stretch) $Start = GUICtrlCreateMenu("Start") $ClearData = GUICtrlCreateMenuItem("Wis alle gegevens", $Start) $PCData = GUICtrlCreateMenuItem("Computer gegevens", $Start) $ChangePic = GUICtrlCreateMenuItem("Achtergrond plaatje", $Start) GUICtrlCreateMenuItem("", $Start) $Exit = GUICtrlCreateMenuItem("Afsluiten", $Start) $Notepad = GUICtrlCreateMenu("Kladblok") $Clear = GUICtrlCreateMenuItem("Wis tekst", $Notepad) GUICtrlCreateMenuItem("", $Notepad) $Open = GUICtrlCreateMenuItem("Openen", $Notepad) $Save = GUICtrlCreateMenuItem("Opslaan", $Notepad) GUICtrlCreateMenuItem("", $Notepad) $Count = GUICtrlCreateMenuItem("Woorden teller", $Notepad) $Settings = GUICtrlCreateMenuItem("Instellingen", $Notepad) $Edit = GUICtrlCreateEdit("", 10, 10, 300, 200) GUICtrlSetFont($Edit, 9, "", "", "Lucida Console") Dim $Buttons[9] Local $Left = 35, $Top = 230 For $i = 0 To UBound($Buttons) - 1 $Buttons[$i] = GUICtrlCreateButton("< X >", $Left, $Top, 50, 50) GuiCtrlSetState(-1,$GUI_ONTOP) $Left += 100 If $Left > 300 Then $Left = 35 $Top += 70 EndIf Next GUIRegisterMsg($WM_ERASEBKGND, "WM_ERASEBKGND") GUISetState(@SW_SHOW) While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit EndSwitch WEnd Func WM_ERASEBKGND($hWnd, $Msg, $wParam, $lParam) if $hBitmap Then $D_C = _WinAPI_CreateCompatibleDC($wParam) $Object = _WinAPI_SelectObject($D_C, $hBitmap) Select Case $Image_Style = 1 StretchBlt($wParam, 0, 0 , _WinAPI_GetClientWidth($hWnd), _WinAPI_GetClientHeight($hWnd), $D_C, 0, 0, _ $ImageWidth , $ImageHeight, $SRCCOPY) Case $Image_Style = 2 For $i1 = 0 To (_WinAPI_GetClientHeight($hWnd) - 1) Step $ImageHeight For $i2 = 0 To (_WinAPI_GetClientWidth($hWnd) - 1) Step $ImageWidth _WinAPI_BitBlt($wParam,$i2,$i1, _WinAPI_GetClientWidth($hWnd), _WinAPI_GetClientHeight($hWnd), _ $D_C ,0,0,$SRCCOPY) Next Next Case $Image_Style = 3 if ($ImageWidth < _WinAPI_GetClientWidth($hWnd)) Then $i2 = ((_WinAPI_GetClientWidth($hWnd) - $ImageWidth) / 2) Else $i2 = 0 EndIf if($ImageHeight < _WinAPI_GetClientHeight($hWnd)) Then $i1 = ( (_WinAPI_GetClientHeight($hWnd) - $ImageHeight) / 2) Else $i1 = 0 EndIf _WinAPI_BitBlt($wParam,$i2,$i1,_WinAPI_GetClientWidth($hWnd), _WinAPI_GetClientHeight($hWnd) , _ $D_C ,0,0,$SRCCOPY) EndSelect $Object = _WinAPI_SelectObject($D_C, $Object) Return True EndIf EndFunc Func StretchBlt($hdcDest,$nXOriginDest,$nYOriginDest,$nWidthDest,$nHeightDest,$hdcSrc,$nXOriginSrc, _ $nYOriginSrc,$nWidthSrc,$nHeightSrc,$dwRop) $DllCall = DllCall("Gdi32.dll" ,"int","StretchBlt","hwnd",$hdcDest,"int",$nXOriginDest,"int",$nYOriginDest,"int",$nWidthDest , _ "int",$nHeightDest,"hwnd",$hdcSrc,"int",$nXOriginSrc,"int",$nYOriginSrc,"int",$nWidthSrc,"int",$nHeightSrc,"long",$dwRop) Return $DllCall[0] EndFunc Func LoadBitmap_FromFile($sFileName ,$ImageStyle) $IMAGE_BITMAP = 0 $LR_LOADFROMFILE = 0x0010 $hBitmap = _WinAPI_LoadImage(_WinAPI_GetModuleHandle(0),$sFileName,$IMAGE_BITMAP ,0,0,$LR_LOADFROMFILE) _GDIPlus_Startup () $hImage = _GDIPlus_BitmapCreateFromHBITMAP ($hBitmap) $ImageWidth = _GDIPlus_ImageGetWidth ($hImage) $ImageHeight = _GDIPlus_ImageGetHeight ($hImage) $Image_Style = $ImageStyle _GDIPlus_ShutDown () EndFunc Func LoadBitmap_FromResources($resource_Name ,$ImageStyle) $hBitmap = _WinAPI_LoadBitmap(_WinAPI_GetModuleHandle(0), $resource_Name) _GDIPlus_Startup () $hImage = _GDIPlus_BitmapCreateFromHBITMAP ($hBitmap) $ImageWidth = _GDIPlus_ImageGetWidth ($hImage) $ImageHeight = _GDIPlus_ImageGetHeight ($hImage) $Image_Style = $ImageStyle _GDIPlus_ShutDown () EndFunc Edited May 26, 2010 by wolf9228 صرح السماء كان هنا Link to comment Share on other sites More sharing options...
AlmarM Posted May 27, 2010 Author Share Posted May 27, 2010 (edited) Works like a charm. If FileExists($PicResized) Then GUICtrlCreatePic($PicResized, 0, 0, 320, 460) GUICtrlSetState(-1, 128) Thanks Malkey And everbody else ofcourse Edited May 27, 2010 by AlmarM Minesweeper A minesweeper game created in autoit, source available. _Mouse_UDF An UDF for registering functions to mouse events, made in pure autoit. 2D Hitbox Editor A 2D hitbox editor for quick creation of 2D sphere and rectangle hitboxes. 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