Anfrage:
Wie bekommt man ein Hintergrundbild in Autoit und auf dem Hintergrund müssen Buttons funktionieren?
Wie funktionieren farbige Buttons in AutoIt?
MfG
moppel
Hintergrundbild
-
moppel -
9. Juni 2006 um 12:13 -
Geschlossen
-
-
- Offizieller Beitrag
Hallo und :welcome:!
Du kannst ein Pic-Control in voller Größe aufziehen auf deiner GUI aufziehen. Hintergrundbild geht per se nicht bisher.
Wenn du den Stil setzt, der das Pic in den HIntergrund schiebt (siehe HIlfe)), dann kannst du darauf auch BUttons platzieren, die klickbar sind.
Farbige Buttons erstellt GUICTRLSetBkColor bzw. GUICtrlSetColor.peethebee
-
Hi,
das war ja eine tolle Überraschung! Ich habe für FreeScore extra Bildchen
gemacht, damit ich bunte Buttons habe..
Und dann lese ich, daß das ganz einfach geht. Den Tipp habe ich mir sofort
gezogen, damit ich es ausprobieren kann, wenn ich wieder zu Hause bin..
Dumm gelaufen, denn selbst in der neuesten Beta kann AutoIt KEINE bunten
Buttons erstellen(Wobei es mir mehr um die Buttonfarbe geht!)
In welcher Version funktioniert das denn nun ? :rofl2:
Gruß
ytwinky -
- Offizieller Beitrag
Hallo!
Ich muss micht entschuldigen. Beschwingt von dem Eindruck, dass man inzwischen sogar Listviews einfärben kann (!), hatte ich vermutet, dass das auch mit Buttons gehen sollte.
Meine Tests mit Beta 3.1.1.126 führten zu dem gleichen Ergebnis wie die von ytwinky.Und es geht (natürlich?) doch!
http://www.autoitscript.com/forum/index.php?showtopic=25516&hl=peethebee
-
Okay, funzt solala..
..aber richtige Buttons sind das nicht..
Eine mögliche Bezeichnung wäre: Eingefärbter GUI-Bereich, der eine Aktion meldet..
Vielleicht gibt es ja Möglichkeiten?
Gruß
ytwinky -
öh die möglichkeit wäre das evtl mit guictrlcreatepic zu machen
gestaltest halt einfach die bilder so wie die Knöpfe sind und benutzt die
dann
am besten 3 eins ohne Focus und nicht gedrückt eins gedrückt und eins
nicht gedrückt mit focus -
- Offizieller Beitrag
Hallo!
Es geht wohl mit der Beta. Undzwar mit GUIRegisterMsg, wenn man da in den code guckt, sieht man da Colorierte Buttons, hier das Example;
Spoiler anzeigen
C
Alles anzeigen; ******************************************************* ; Example - Create an ownerdrawn/colored button ; ******************************************************* #include <GUIConstants.au3> Global Const $WM_DRAWITEM = 0x002B Global Const $WM_COMMAND = 0x0111 Global Const $GWL_STYLE = -16 Global Const $BS_OWNERDRAW = 0x0000000B Global Const $BS_NOTIFY = 0x00004000 Global Const $COLOR_BTNTEXT = 18 Global Const $COLOR_BTNFACE = 15 Global Const $COLOR_BTNSHADOW = 16 Global Const $COLOR_HIGHLIGHTTEXT = 14 Global Const $COLOR_GRAYTEXT = 17 Global Const $DT_CENTER = 0x00000001 Global Const $DT_RIGHT = 0x00000002 Global Const $DT_VCENTER = 0x00000004 Global Const $DT_BOTTOM = 0x00000008 Global Const $DT_WORDBREAK = 0x00000010 Global Const $DT_SINGLELINE = 0x00000020 Global Const $DT_EXPANDTABS = 0x00000040 Global Const $DT_TABSTOP = 0x00000080 Global Const $DT_NOCLIP = 0x00000100 Global Const $DT_EXTERNALLEADING = 0x00000200 Global Const $DT_CALCRECT = 0x00000400 Global Const $DT_NOPREFIX = 0x00000800 Global Const $DT_INTERNAL = 0x00001000 Global Const $ODS_SELECTED = 0x0001 Global Const $ODS_GRAYED = 0x0002 Global Const $ODS_DISABLED = 0x0004 Global Const $ODS_CHECKED = 0x0008 Global Const $ODS_FOCUS = 0x0010 Global Const $ODS_HOTLIGHT = 0x0040 Global Const $ODS_INACTIVE = 0x0080 Global Const $ODS_NOACCEL = 0x0100 Global Const $ODS_NOFOCUSRECT = 0x0200 Global Const $ODT_BUTTON = 4 Global Const $DFC_BUTTON = 4 Global Const $DFCS_BUTTONPUSH = 0x0010 $hGUI = GUICreate("My Ownerdrawn Created Button", 300, 200) $nButton = GUICtrlCreateButton("", 90, 50, 120, 30) GUICtrlSetStyle($nButton, BitOr($WS_TABSTOP, $BS_NOTIFY, $BS_OWNERDRAW)) ; Set the ownerdrawn flag $nButton2 = GUICtrlCreateButton("Normal Button", 90, 110, 120, 30) GUIRegisterMsg($WM_COMMAND, "MY_WM_COMMAND") ; WM_DRAWITEM has to registered before showing GUI otherwise the initial drawing isn't done GUIRegisterMsg($WM_DRAWITEM, "MY_WM_DRAWITEM") GUISetState() While 1 $GUIMsg = GUIGetMsg() Switch $GUIMsg Case $GUI_EVENT_CLOSE ExitLoop Case $nButton ; Normally should not run through cause of our MY_WM_COMMAND function Msgbox(0, "Info", "Button pressed") Case $nButton2 ; Normally should not run through cause of our MY_WM_COMMAND function Msgbox(0, "Info", "Button2 pressed") EndSwitch WEnd Exit ; React on a button click Func MY_WM_COMMAND($hWnd, $Msg, $wParam, $lParam) $nNotifyCode = BitShift($wParam, 16) $nID = BitAnd($wParam, 0x0000FFFF) $hCtrl = $lParam If $nID <> 2 And $nNotifyCode = 0 Then ; Check for IDCANCEL - 2 ; Ownerdrawn buttons don't send something by pressing ENTER ; So IDOK - 1 comes up, now check for the control that has the current focus If $nID = 1 Then $hFocus = DllCall("user32.dll", "hwnd", "GetFocus") $nCtrlID = DllCall("user32.dll", "int", "GetDlgCtrlID", "hwnd", $hFocus[0]) PostButtonClick($hFocus[0], $nCtrlID[0]) Else Msgbox(0, "MY_WM_COMMAND", "GUIHWnd" & @TAB & ":" & $hwnd & @LF & _ "MsgID" & @TAB & ":" & $Msg & @LF & _ "wParam" & @TAB & ":" & $wParam & @LF & _ "lParam" & @TAB & ":" & $lParam & @LF & @LF & _ "WM_COMMAND - Infos:" & @LF & _ "-----------------------------" & @LF & _ "Code" & @TAB & ":" & $nNotifyCode & @LF & _ "CtrlID" & @TAB & ":" & $nID & @LF & _ "CtrlHWnd" & @TAB & ":" & $hCtrl) EndIf Return 0 ; Only workout clicking on the button EndIf ; Proceed the default Autoit3 internal message commands. ; You also can complete let the line out. ; !!! But only 'Return' (without any value) will not proceed ; the default Autoit3-message in the future !!! Return $GUI_RUNDEFMSG EndFunc ; RePost a WM_COMMAND message to a ctrl in a gui window Func PostButtonClick($hWnd, $nCtrlID) DllCall("user32.dll", "int", "PostMessage", _ "hwnd", $hGUI, _ "int", $WM_COMMAND, _ "int", BitAnd($nCtrlID, 0x0000FFFF), _ "hwnd", GUICtrlGetHandle($nCtrlid)) EndFunc ; Draw the button Func MY_WM_DRAWITEM($hWnd, $Msg, $wParam, $lParam) Local $stDrawItem = DllStructCreate("uint;uint;uint;uint;uint;uint;uint;int[4];dword", $lParam) $nCtlType = DllStructGetData($stDrawItem, 1) If $nCtlType = $ODT_BUTTON Then $nCtrlID = DllStructGetData($stDrawItem, 2) $nItemState = DllStructGetData($stDrawItem, 5) $hCtrl = DllStructGetData($stDrawItem, 6) $hDC = DllStructGetData($stDrawItem, 7) $nLeft = DllStructGetData($stDrawItem, 8, 1) $nTop = DllStructGetData($stDrawItem, 8, 2) $nRight = DllStructGetData($stDrawItem, 8, 3) $nBottom = DllStructGetData($stDrawItem, 8, 4) $sText = "Ownerdrawn Button" $nTextColor = 0x5555DD $nBackColor = 0xFFEEDD DrawButton($hWnd, $hCtrl, $hDC, $nLeft, $nTop, $nRight, $nBottom, $nItemState, $sText, $nTextColor, $nBackColor) $stDrawItem = 0 Return 1 EndIf $stDrawItem = 0 Return $GUI_RUNDEFMSG ; Proceed the default Autoit3 internal message commands EndFunc ; The main drawing procedure Func DrawButton($hWnd, $hCtrl, $hDC, $nLeft, $nTop, $nRight, $nBottom, $nItemState, $sText, $nTextColor, $nBackColor) ;Local $bDefault = FALSE Local $bChecked = BitAnd($nItemState, $ODS_CHECKED) Local $bFocused = BitAnd($nItemState, $ODS_FOCUS) Local $bGrayed = BitAnd($nItemState, BitOr($ODS_GRAYED, $ODS_DISABLED)) Local $bSelected= BitAnd($nItemState, $ODS_SELECTED) $stRect = DllStructCreate("int;int;int;int") DllStructSetData($stRect, 1, $nLeft) DllStructSetData($stRect, 2, $nTop) DllStructSetData($stRect, 3, $nRight) DllStructSetData($stRect, 4, $nBottom) If $bGrayed Then $nClrTxt = SetTextColor($hDC, GetSysColor($COLOR_HIGHLIGHTTEXT)) ElseIf $nTextColor = -1 Then $nClrTxt = SetTextColor($hDC, GetSysColor($COLOR_BTNTEXT)) Else $nClrTxt = SetTextColor($hDC, $nTextColor) EndIf If $nBackColor = -1 Then $hBrush = GetSysColorBrush($COLOR_BTNFACE) $nClrSel = GetSysColor($COLOR_BTNFACE) Else $hBrush = CreateSolidBrush($nBackColor) $nClrSel = $nBackColor; EndIf $nClrBk = SetBkColor($hDC, $nClrSel) $hOldBrush = SelectObject($hDC, $hBrush) $nTmpLeft = $nLeft $nTmpTop = $nTop $nTmpRight = $nRight $nTmpBottom = $nBottom If $bSelected Then InflateRect($nTmpLeft, $nTmpTop, $nTmpRight, $nTmpBottom, -1, -1) $hBrushSel = CreateSolidBrush(GetSysColor($COLOR_BTNSHADOW)) FrameRect($hDC, $nTmpLeft, $nTmpTop, $nTmpRight, $nTmpBottom, $hBrushSel) DeleteObject($hBrushSel) Else If $bFocused And Not $bSelected Then InflateRect($nTmpLeft, $nTmpTop, $nTmpRight, $nTmpBottom, -1, -1) DrawFrameControl($hDC, $nTmpLeft, $nTmpTop, $nTmpRight, $nTmpBottom, $DFC_BUTTON, $DFCS_BUTTONPUSH) EndIf $nTmpLeft = $nLeft $nTmpTop = $nTop $nTmpRight = $nRight $nTmpBottom = $nBottom If $bSelected Then InflateRect($nTmpLeft, $nTmpTop, $nTmpRight, $nTmpBottom, -2, -2) Else If $bFocused And Not $bSelected Then InflateRect($nTmpLeft, $nTmpTop, $nTmpRight, $nTmpBottom, -3, -3) $nTmpLeft -= 1 $nTmpTop -= 1 Else InflateRect($nTmpLeft, $nTmpTop, $nTmpRight, $nTmpBottom, -2, -2) $nTmpLeft -= 1 $nTmpTop -= 1 EndIf EndIf FillRect($hDC, $nTmpLeft, $nTmpTop, $nTmpRight, $nTmpBottom, $hBrush) If $bSelected Or $bGrayed Then $nTmpLeft = $nTmpLeft + 2 $nTmpTop = $nTmpTop +2 EndIf $uFlags = BitOr($DT_NOCLIP, $DT_CENTER, $DT_VCENTER) If Not BitAnd(GetWindowLong($hCtrl, $GWL_STYLE), $BS_MULTILINE) Then $uFlags = BitOr($uFlags, $DT_SINGLELINE) DrawText($hDC, $sText, $nTmpLeft, $nTmpTop, $nTmpRight, $nTmpBottom, $uFlags) If $bGrayed Then $nTmpLeft = $nLeft $nTmpTop = $nTop $nTmpRight = $nRight $nTmpBottom = $nBottom $nTmpLeft -= 1 $nClrTxt = SetTextColor($hDC, GetSysColor($COLOR_GRAYTEXT)) DrawText($hDC, $sText, $nTmpLeft, $nTmpTop, $nTmpRight, $nTmpBottom, BitOr($DT_NOCLIP, $DT_CENTER, $DT_VCENTER, $DT_SINGLELINE)) EndIf $nTmpLeft = $nLeft $nTmpTop = $nTop $nTmpRight = $nRight $nTmpBottom = $nBottom If $bFocused Then $hBrush = CreateSolidBrush(0) FrameRect($hDC, $nTmpLeft, $nTmpTop, $nTmpRight, $nTmpBottom, $hBrush) $nTmpLeft = $nLeft $nTmpTop = $nTop $nTmpRight = $nRight $nTmpBottom = $nBottom InflateRect($nTmpLeft, $nTmpTop, $nTmpRight, $nTmpBottom, -4, -4) DrawFocusRect($hDC, $nTmpLeft, $nTmpTop, $nTmpRight, $nTmpBottom) EndIf SelectObject($hDC, $hOldBrush) DeleteObject($hBrush) SetTextColor($hDC, $nClrTxt) SetBkColor($hDC, $nClrBk) Return 1 EndFunc ; Some graphic / windows functions Func CreateSolidBrush($nColor) Local $hBrush = DllCall("gdi32.dll", "hwnd", "CreateSolidBrush", "int", $nColor) Return $hBrush[0] EndFunc Func GetSysColor($nIndex) Local $nColor = DllCall("user32.dll", "int", "GetSysColor", "int", $nIndex) Return $nColor[0] EndFunc Func GetSysColorBrush($nIndex) Local $hBrush = DllCall("user32.dll", "hwnd", "GetSysColorBrush", "int", $nIndex) Return $hBrush[0] EndFunc Func DrawFrameControl($hDC, $nLeft, $nTop, $nRight, $nBottom, $nType, $nState) Local $stRect = DllStructCreate("int;int;int;int") DllStructSetData($stRect, 1, $nLeft) DllStructSetData($stRect, 2, $nTop) DllStructSetData($stRect, 3, $nRight) DllStructSetData($stRect, 4, $nBottom) DllCall("user32.dll", "int", "DrawFrameControl", "hwnd", $hDC, "ptr", DllStructGetPtr($stRect), "int", $nType, "int", $nState) $stRect = 0 EndFunc Func DrawFocusRect($hDC, $nLeft, $nTop, $nRight, $nBottom) Local $stRect = DllStructCreate("int;int;int;int") DllStructSetData($stRect, 1, $nLeft) DllStructSetData($stRect, 2, $nTop) DllStructSetData($stRect, 3, $nRight) DllStructSetData($stRect, 4, $nBottom) DllCall("user32.dll", "int", "DrawFocusRect", "hwnd", $hDC, "ptr", DllStructGetPtr($stRect)) $stRect = 0 EndFunc Func DrawText($hDC, $sText, $nLeft, $nTop, $nRight, $nBottom, $nFormat) Local $nLen = StringLen($sText) Local $stRect = DllStructCreate("int;int;int;int") DllStructSetData($stRect, 1, $nLeft) DllStructSetData($stRect, 2, $nTop) DllStructSetData($stRect, 3, $nRight) DllStructSetData($stRect, 4, $nBottom) Local $stText = DllStructCreate("char[260]") DllStructSetData($stText, 1, $sText) DllCall("user32.dll", "int", "DrawText", "hwnd", $hDC, "ptr", DllStructGetPtr($stText), "int", $nLen, "ptr", DllStructGetPtr($stRect), "int", $nFormat) $stRect = 0 $stText = 0 EndFunc Func FillRect($hDC, $nLeft, $nTop, $nRight, $nBottom, $hBrush) Local $stRect = DllStructCreate("int;int;int;int") DllStructSetData($stRect, 1, $nLeft) DllStructSetData($stRect, 2, $nTop) DllStructSetData($stRect, 3, $nRight) DllStructSetData($stRect, 4, $nBottom) DllCall("user32.dll", "int", "FillRect", "hwnd", $hDC, "ptr", DllStructGetPtr($stRect), "hwnd", $hBrush) $stRect = 0 EndFunc Func FrameRect($hDC, $nLeft, $nTop, $nRight, $nBottom, $hBrush) Local $stRect = DllStructCreate("int;int;int;int") DllStructSetData($stRect, 1, $nLeft) DllStructSetData($stRect, 2, $nTop) DllStructSetData($stRect, 3, $nRight) DllStructSetData($stRect, 4, $nBottom) DllCall("user32.dll", "int", "FrameRect", "hwnd", $hDC, "ptr", DllStructGetPtr($stRect), "hwnd", $hBrush) $stRect = 0 EndFunc Func InflateRect(ByRef $nLeft, ByRef $nTop, ByRef $nRight, ByRef $nBottom, $nX, $nY) Local $stRect = DllStructCreate("int;int;int;int") DllStructSetData($stRect, 1, $nLeft) DllStructSetData($stRect, 2, $nTop) DllStructSetData($stRect, 3, $nRight) DllStructSetData($stRect, 4, $nBottom) DllCall("user32.dll", "int", "InflateRect", "ptr", DllStructGetPtr($stRect), "int", $nX, "int", $nY) $nLeft = DllStructGetData($stRect, 1) $nTop = DllStructGetData($stRect, 2) $nRight = DllStructGetData($stRect, 3) $nBottom = DllStructGetData($stRect, 4) $stRect = 0 EndFunc Func SetBkColor($hDC, $nColor) Local $nOldColor = DllCall("gdi32.dll", "int", "SetBkColor", "hwnd", $hDC, "int", $nColor) Return $nOldColor[0] EndFunc Func SetTextColor($hDC, $nColor) Local $nOldColor = DllCall("gdi32.dll", "int", "SetTextColor", "hwnd", $hDC, "int", $nColor) Return $nOldColor[0] EndFunc Func SelectObject($hDC, $hObj) Local $hOldObj = DllCall("gdi32.dll", "hwnd", "SelectObject", "hwnd", $hDC, "hwnd", $hObj) Return $hOldObj[0] EndFunc Func DeleteObject($hObj) Local $nResult = DllCall("gdi32.dll", "hwnd", "DeleteObject", "hwnd", $hObj) EndFunc Func GetWindowLong($hWnd, $nIndex) Local $nVal = DllCall("user32.dll", "int", "GetWindowLong", "hwnd", $hWnd, "int", $nIndex) Return $nVal[0] EndFunc
-
- Offizieller Beitrag
Hallo!
Sehr schön, gtaspider.
Wo hast du das schon wieder gefunden?peethebee
-
- Offizieller Beitrag
Hallo
Die Hilfe lesen -.- :comp1:
Mfg Spider
-
- Offizieller Beitrag
Ups, bisschen peinlich - egal.
-
Den Hintergrund habe ich hinbekommen - ok
Die Button wollen nicht und das Script von gtaspider bringt leider eine Fehlermeldung, siehe Anhang. Das gleiche kommt nach deaktivierung mit den anderen Case-Befehlen -
- Offizieller Beitrag
Hallo!
Am besten du postest mal dein Skript. Aber laut Fehlermeldung hast du mehr EndSelects als Selects, du bruachst für die Messageverarbeitung jeweils genau eines, hast aber vermutlich entweder 2x Endselect oder 0x Select. Oder das Endselect kommt vor dem letzten Case...
peethebee
-
Script siehe oben bei
gtaspidermoppel
-
- Offizieller Beitrag
Hallo!
Okay, dann musst du es mit einer (möglich neuen) Beta-Version ausführen. Verions 3.1.1 kannte noch kein Switch...
peethebee
-
Zitat
Original von peethebee
Hallo und :welcome:!Du kannst ein Pic-Control in voller Größe aufziehen auf deiner GUI aufziehen. Hintergrundbild geht per se nicht bisher.
Wenn du den Stil setzt, der das Pic in den HIntergrund schiebt (siehe HIlfe)), dann kannst du darauf auch BUttons platzieren, die klickbar sind.
Farbige Buttons erstellt GUICTRLSetBkColor bzw. GUICtrlSetColor.peethebee
Wie genau kann man ein Bild in den Hintergrund schicken? Hab schon die ganzen Styles abegklappert in der Hilfe und wurde nicht fündig :/.
Ich habe ein 2tes Fenster mit dem Namen SubGUI, aufdem ein paar Buttons mit Funktionen sind, ein paar Text eingabe Felder mit Funktionen und ein Bild, dass genau so gross ist wie das Fenster, was das Design des SubGUI's darstellen soll. Nur wird nun 1. das Bild nicht angezeigt und 2. (es wurde einmal angezeigt) kann man nicht auf die Eingabefelder & Buttons klicken (ich habs schon mit $WS_EX_LAYERED versucht, komm aber leider nicht draus wie ich die Eigenschaft verwenden soll). Auf meinem Desktop des Benutzers ist die Datei "SubGUI.ico", die ich als Hintergrundbild verwenden möchte.
Der Code für meinen SubGUI:
Code
Alles anzeigen; SubGUI: $SubGUI = GUICreate("Create a Habbo", 380, 609, 250, 500, $WS_EX_LAYERED) GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSE2Clicked") ; SubGUI - Create a Habbo Button: $create2 = GUICtrlCreateButton("OK", 177, 551, 25, 14) GUICtrlSetOnEvent($create2, "CREATE2Button") GUICtrlCreatePic(@DesktopDir & "\SubGUI.ico",0,0, 380,609) ; SubGUI - Input Field: $name = GUICtrlCreateInput ( "", 34, 58, 145, 30 ) ;SubGUI Close Button Function: Func CLOSE2Clicked() Exit EndFunc ; SubGUI - Create a Habbo Function: Func CREATE2Button() Send(GUICtrlRead($name)) EndFunc
Ein weiteres Problem, dass ich noch nicht verstehe ist, wenn ich in einer Funktion If und Else benützte, funktioniert es einfach nicht. Ich möchte eigentlich, dass nur wenn der Wert $hmail 0 ist, der Mausklick in der Funktion ausgeführt wird. Doch dieser Mausklick macht es auch nicht wenn der Wert 0 ist.
CodeFunc TestButton() If $hmail = 0 Then MouseClick("left", 627, 566, 1) ElseIf $hmail = 1 Then Sleep(1) EndFunc EndIf
Danke schonmal im Vorraus .
-
1.
Func TestButton()
2.
If $hmail = 0 Then
3.
MouseClick("left", 627, 566, 1)
4.
ElseIf $hmail = 1 Then
5.
Sleep(1)
6.
EndFunc
7.
EndIf_________________________________________
[autoit]
[/autoit][autoit][/autoit][autoit]
Func TestButton()If $hmail = 0 Then
[/autoit][autoit][/autoit][autoit]
MouseClick("left", 627, 566, 1)Else
[/autoit][autoit][/autoit][autoit]Exit
[/autoit][autoit][/autoit][autoit]EndIf
[/autoit][autoit][/autoit][autoit]EndFunc
[/autoit]Sollte gehen
Funtzt bei mir tadellos, also meine variante -
Hallo!
hab da auch was gefunden zu farbigen Button.Spoiler anzeigen
#include <GUIConstants.au3>
GUICreate("test",300,100)
$a = _GUICtrlCreateColorButton("test1", 5, 5, 50, 20, 0xff0000)
$b = _GUICtrlCreateColorButton("test2", 65, 5, 50, 20, 0x00ff00)
$c = _GUICtrlCreateColorButton("test3", 125, 5, 50, 20, 0x0000ff,0xffffff)
$d = _GUICtrlCreateColorButton("test4", 185, 5, 50, 20, 0xffff00)
$e = _GUICtrlCreateColorButton("test5", 245, 5, 50, 20, 0xffffff)
$f = _GUICtrlCreateColorButton("test6", 5, 35, 50, 20,0xffaa00)
$g = _GUICtrlCreateColorButton("test7", 65, 35, 50, 20,0xaaff00)
$h = _GUICtrlCreateColorButton("test8", 125, 35, 50, 20,0x00aaff,0xffffff)
$i = _GUICtrlCreateColorButton("test9", 185, 35, 50, 20,0xffffaa)
$j = _GUICtrlCreateColorButton("test10",245, 35, 50, 20,0xdddddd)
$k = _GUICtrlCreateColorButton("test11", 5, 65, 50, 20,0xffee00)
$l = _GUICtrlCreateColorButton("test12", 65, 65, 50, 20,0xccff00)
$m = _GUICtrlCreateColorButton("test13",125, 65, 50, 20,0x00ddff,0xffffff)
$n = _GUICtrlCreateColorButton("test14",185, 65, 50, 20,0xffeedd)
$o = _GUICtrlCreateColorButton("test15",245, 65, 50, 20,0x000000,0xffffff)
GUISetState ()do
$msg = GUIGetMsg()
if $msg = $a[0] then msgbox(0, "colorbutton pressed","You pressed cb1",1)
if $msg = $b[0] then msgbox(0, "colorbutton pressed","You pressed cb2",1)
if $msg = $c[0] then msgbox(0, "colorbutton pressed","You pressed cb3",1)
if $msg = $d[0] then msgbox(0, "colorbutton pressed","You pressed cb4",1)
if $msg = $e[0] then msgbox(0, "colorbutton pressed","You pressed cb5",1)
if $msg = $f[0] then msgbox(0, "colorbutton pressed","You pressed cb6",1)
if $msg = $g[0] then msgbox(0, "colorbutton pressed","You pressed cb7",1)
if $msg = $h[0] then msgbox(0, "colorbutton pressed","You pressed cb8",1)
if $msg = $i[0] then msgbox(0, "colorbutton pressed","You pressed cb9",1)
if $msg = $j[0] then msgbox(0,"colorbutton pressed","You pressed cb10",1)
if $msg = $k[0] then msgbox(0,"colorbutton pressed","You pressed cb11",1)
if $msg = $l[0] then msgbox(0,"colorbutton pressed","You pressed cb12",1)
if $msg = $m[0] then msgbox(0,"colorbutton pressed","You pressed cb13",1)
if $msg = $n[0] then msgbox(0,"colorbutton pressed","You pressed cb14",1)
if $msg = $o[0] then msgbox(0,"colorbutton pressed","You pressed cb15",1)
until $msg = $GUI_EVENT_CLOSE;#include-once
;=============================================================================
;
; Function Name: _GUICtrlCreateColorButton()
;
; Description: Creates a colored Button
;
; Syntax: _GUICtrlCreateColorButton($text, $left, $top, $width, $height,$bkcolor[,$fontcolor])
;
; Parameter(s); $text = The text of the control
; $left = The left side of the control
; $top = The top of the control
; $width = The width of the control
; $height = The height of the control
; $bkcolor = Backgroundcolor of the control
; $fontcolor = [optional] Fontcolor of the control
;
; Return Value(s): array[1] = used to change colors
; array[0] = notifies GUIGetMsg if user clicks
;
; Author: rakudave <rakudave@gmx.net>
;=============================================================================Func _GUICtrlCreateColorButton($text, $left, $top, $width, $height,$bkcolor,$fontcolor = 0x000000)
local $colbut[2]
$colbut[0] = GUICtrlCreateLabel("",$left,$top,$width,$height,$SS_BLACKRECT)
GUICtrlCreateLabel("",$left,$top,$width -1,$height -1,$SS_WHITERECT)
GUICtrlCreateLabel("",$left +1,$top +1,$width -2,$height -2,$SS_GRAYRECT)
$colbut[1] = GUICtrlCreateLabel($text,$left +1,$top + 1,$width -3,$height -3,$SS_NOTIFY & $SS_CENTER)
GUICtrlSetBkColor(-1,$bkcolor)
GUICtrlSetColor(-1,$fontcolor)
Return $colbut
EndFunc -
Also wenn ich das für meine Funktion umschreibe sieht das ja so aus:
ZitatFunc TestButton()
If $hmail = 0 Then
MouseClick("left", 627, 566, 1)
Else
Exit
EndIf
EndFuncNur Schliesst das Programm automatisch, egal ob ich 0 oder 1 als wert beim Feld für $hmail eingegeben habe. Also ignoriert es irgentwie If und geht gleich zur Else-Variante über.
-
langsam^^
du hast den code:
[autoit]#
[/autoit][autoit][/autoit][autoit]
SubGUI:#
[/autoit][autoit][/autoit][autoit]
$SubGUI = GUICreate("Create a Habbo", 380, 609, 250, 500, $WS_EX_LAYERED)#
[/autoit][autoit][/autoit][autoit]
GUISetOnEvent($GUI_EVENT_CLOSE, "CLOSE2Clicked")#
[/autoit][autoit][/autoit][autoit]#
[/autoit][autoit][/autoit][autoit]
; SubGUI - Create a Habbo Button:#
[/autoit][autoit][/autoit][autoit]
$create2 = GUICtrlCreateButton("OK", 177, 551, 25, 14)#
[/autoit][autoit][/autoit][autoit]
GUICtrlSetOnEvent($create2, "CREATE2Button")#
[/autoit][autoit][/autoit][autoit]#
[/autoit][autoit][/autoit][autoit]
GUICtrlCreatePic(@DesktopDir & "\SubGUI.ico",0,0, 380,609)#
[/autoit][autoit][/autoit][autoit]#
[/autoit][autoit][/autoit][autoit]
; SubGUI - Input Field:#
[/autoit][autoit][/autoit][autoit]
$name = GUICtrlCreateInput ( "", 34, 58, 145, 30 )#
[/autoit][autoit][/autoit][autoit]#
[/autoit][autoit][/autoit][autoit]
;SubGUI Close Button Function:#
[/autoit][autoit][/autoit][autoit]
Func CLOSE2Clicked()#
[/autoit][autoit][/autoit][autoit]
Exit#
[/autoit][autoit][/autoit][autoit]
EndFunc#
[/autoit][autoit][/autoit][autoit]#
[/autoit][autoit][/autoit][autoit]
; SubGUI - Create a Habbo Function:#
[/autoit][autoit][/autoit][autoit]
Func CREATE2Button()#
[/autoit][autoit][/autoit][autoit]
Send(GUICtrlRead($name))#
[/autoit]
EndFuncStimmt?
Also ich finde da kein $hmail ..
Naja trozdem, ich hab es so gemacht:
[autoit]Global $hmail = 0
[/autoit][autoit][/autoit][autoit]
Func TestButton()
If $hmail = 0 Then
MouseClick("left", 627, 566, 1)
Else
Exit
EndIf
EndFuncTestButton()
[/autoit]Das funtzt bei mir super, vll wird $hmail nicht richtig auf 0 gesetzt?
Mach mal in deine Funktion, kurz bevor er den MouseClick machen sollte, ein:
MsgBox(0, "", $hmail)
Wenn der WErt 1 ist, dann weisst du was das problem ist
Wenn er 0 ist, sollte er eigentlich den Mouseclick machen
-
Ich weiß nicht ob meine Antwort hierher passt. Und zwar ich würde das so machen:
[autoit]
[/autoit]
GUICtrlCreatePic("Background.jpg", 0, 0, 1024, 768)
GUICtrlSetState(-1, $GUI_DISABLE) -