Erstellt ein Button-Control
#Include <GuiButton.au3>
_GUICtrlButton_Create($hWnd, $sText, $iX, $iY, $iWidth, $iHeight[, $iStyle = -1[, $iExStyle = -1]])
Parameter
| $hWnd | Handle zum Hauptfenster, in dem der Button erstellt werden soll |
| $sText | Text des Buttons |
| $iX | Horizontale Position des Controls |
| $iY | Vertikale Position des Controls |
| $iWidth | Breite des Controls |
| $iHeight | Höhe des Controls |
| $iStyle | [optional] Stile des Controls: $BS_AUTO3STATE - Erstellt eine 3-Status-Checkbox, in welcher sich der Status mit jedem Klick auf die Checkbox zwischen markiert, nicht verfügbar und nicht markiert ändert. $BS_AUTOCHECKBOX - Erstellt eine Checkbox, in welcher sich der Status mit jedem Klick auf die Checkbox zwischen markiert und nicht markiert ändert. $BS_AUTORADIOBUTTON - Entspricht dem Radiobutton mit dem Unterschied, dass wenn der Benutzer den Button auswählt, er automatisch hervorgehoben wird und alle anderen Radiobuttons in der selben Gruppe mit dem selben Stil die Markierung verlieren. $BS_FLAT - Legt fest, dass der Button 2-dimensional ist. Es wird nicht der Standardschatten benutzt, um ein 3D-Bild zu erstellen. $BS_GROUPBOX - Erstellt ein Rechteck, in welchem andere Buttons gruppiert werden können. Der mit diesem Stil verbundene Text wird in der oberen linken Ecke des Rechtecks dargestellt. $BS_PUSHLIKE - Erstellt einen Button (wie z. B. eine Checkbox, 3-Status-Checkbox oder Radiobutton), welcher so aussieht und so agiert wie ein "Push"-Button. Der Button sieht erhaben aus, wenn er nicht gedrückt oder markiert ist und versenkt, wenn er gedrückt oder markiert ist. $BS_DEFPUSHBUTTON - Erstellt einen "Push"-Button mit einem dicken schwarzen Rand. Falls sich der Button in einer Dialogbox befindet, kann der Benutzer den Button durch Drücken der ENTER-Taste auswählen, auch wenn der Button nicht den Eingabefokus besitzt. Dieser Stil ist hilfreich für das Aktivieren des Standards oder der meist verwendeten Option. $BS_BOTTOM - Platziert den Text unten im Rechteck des Buttons. $BS_CENTER - Zentriert den Text horizontal im Rechteck des Buttons. $BS_LEFT - Richtet den Text linksbündig im Rechteck des Buttons auf der rechten Seite der Checkbox aus. $BS_MULTILINE - Umhüllt den Text des Buttons, um mehrere Zeilen zu erzeugen, falls der Textstring zu lang ist, um ihn in einer einzelnen Zeile in dem Rechteck des Buttons einzupassen. $BS_RIGHT - Richtet den Text rechtsbündig im Rechteck des Buttons auf der rechten Seite der Checkbox aus. $BS_RIGHTBUTTON - Positioniert ein Checkbox-Viereck auf der rechten Seite des Rechtecks des Buttons. $BS_TOP - Platziert den Text oben im Rechteck des Buttons. $BS_VCENTER - Zentriert den Text vertikal im Rechteck des Buttons. $BS_ICON - Legt fest, dass der Button ein Icon anzeigen soll. $BS_BITMAP - Legt fest, dass der Button eine Bitmap anzeigen soll. $BS_NOTIFY - Aktiviert einen Button, um eine BN_KILLFOCUS- und BN_SETFOCUS-Benachrichtigung an dessen parent-Fenster zu senden. Es ist zu beachten, dass Buttons die BN_CLICKED-Benachrichtigung senden, egal ob sie diesen Stil besitzen oder nicht. Um die BN_CLICKED-Benachrichtigung zu erhalten, muss der Button den BS_RADIOBUTTON- oder BS_OWNERDRAW-Stil besitzen. |
| Stile von Vista: $BS_SPLITBUTTON - Erstellt einen "Split"-Button. Ein "Split"-Button hat einen Dropdown-Pfeil $BS_DEFSPLITBUTTON - Erstellt einen "Split"-Button, welcher sich wie ein Button mit dem Stil $BS_PUSHBUTTON verhält, aber auch eine auffällige Erscheinung besitzt. $BS_COMMANDLINK - Erstellt einen Befehlszeilenbutton $BS_DEFCOMMANDLINK - Erstellt einen Befehlszeilenbutton, welcher sich wie ein Button mit dem Stil $BS_PUSHBUTTON verhält. Standard: ( -1) : nichts Erzwungen : $WS_CHILD, $WS_TABSTOP, $WS_VISIBLE, $BS_NOTIFY |
|
| $iExStyle | [optional] Erweiterte Stile des Controls. Diese entsprechen den Standard-$WS_EX_-Konstanten. |
Rückgabewert
| Erfolg: | Handle zu dem Button-Control |
| Fehler: | 0 |
Bemerkungen
Die obigen Konstanten benötigen ButtonConstants.au3
Verwandte Funktionen
_GUICtrlButton_Destroy
Beispiel
#include <GuiButton.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
Opt("MustDeclareVars", 1)
Global $btn, $rdo, $chk, $iMemo
; Es ist zu beachten, dass die Control-ID dieses Buttons NICHT mit GuiCtrlRead gelesen werden kann!
_Main()
Func _Main()
Local $hGUI
$hGUI = GUICreate("Buttons", 400, 400)
$iMemo = GUICtrlCreateEdit("", 119, 10, 276, 374, $WS_VSCROLL)
GUICtrlSetFont($iMemo, 9, 400, 0, "Courier New")
$btn = _GUICtrlButton_Create($hGUI, "Button1", 10, 10, 90, 50)
$rdo = _GUICtrlButton_Create($hGUI, "Radio1", 10, 60, 90, 50, $BS_AUTORADIOBUTTON)
$chk = _GUICtrlButton_Create($hGUI, "Check1", 10, 120, 90, 50, $BS_AUTO3STATE)
GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY")
GUISetState()
MemoWrite("$btn Handle: " & $btn)
MemoWrite("$rdo Handle: " & $rdo)
MemoWrite("$chk Handle: " & $chk & @CRLF)
While 1
Switch GUIGetMsg()
Case $GUI_EVENT_CLOSE
ExitLoop
EndSwitch
WEnd
Exit
EndFunc ;==>_Main
; Gibt eine Zeile im Memo-Fenster aus
Func MemoWrite($sMessage)
GUICtrlSetData($iMemo, $sMessage & @CRLF, 1)
EndFunc ;==>MemoWrite
Func WM_NOTIFY($hWnd, $Msg, $wParam, $lParam)
#forceref $hWnd, $Msg, $wParam
Local Const $BCN_HOTITEMCHANGE = -1249
Local $tNMBHOTITEM = DllStructCreate("hwnd hWndFrom;int IDFrom;int Code;dword dwFlags", $lParam)
Local $nNotifyCode = DllStructGetData($tNMBHOTITEM, "Code")
Local $nID = DllStructGetData($tNMBHOTITEM, "IDFrom")
Local $hCtrl = DllStructGetData($tNMBHOTITEM, "hWndFrom")
Local $dwFlags = DllStructGetData($tNMBHOTITEM, "dwFlags")
Local $sText = ""
Switch $nNotifyCode
Case $BCN_HOTITEMCHANGE ; Windows XP und höher
If BitAND($dwFlags, 0x10) = 0x10 Then
$sText = "$BCN_HOTITEMCHANGE - beim Ankommen: " & @CRLF
ElseIf BitAND($dwFlags, 0x20) = 0x20 Then
$sText = "$BCN_HOTITEMCHANGE - beim Verlassen: " & @CRLF
EndIf
MemoWrite($sText & _
"-----------------------------" & @CRLF & _
"WM_NOTIFY - Infos:" & @CRLF & _
"-----------------------------" & @CRLF & _
"Code" & @TAB & ":" & $nNotifyCode & @CRLF & _
"CtrlID" & @TAB & ":" & $nID & @CRLF & _
"CtrlHWnd:" & $hCtrl & @CRLF & _
_GUICtrlButton_GetText($hCtrl) & @CRLF)
EndSwitch
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY
; Reaktion auf einen Button-Klick
Func WM_COMMAND($hWnd, $Msg, $wParam, $lParam)
#forceref $hWnd, $Msg
Local $nNotifyCode = BitShift($wParam, 16)
Local $nID = BitAND($wParam, 0x0000FFFF)
Local $hCtrl = $lParam
Local $sText = ""
Switch $hCtrl
Case $btn, $rdo, $chk
Switch $nNotifyCode
Case $BN_CLICKED
$sText = "$BN_CLICKED" & @CRLF
Case $BN_PAINT
$sText = "$BN_PAINT" & @CRLF
Case $BN_PUSHED, $BN_HILITE
$sText = "$BN_PUSHED, $BN_HILITE" & @CRLF
Case $BN_UNPUSHED, $BN_UNHILITE
$sText = "$BN_UNPUSHED" & @CRLF
Case $BN_DISABLE
$sText = "$BN_DISABLE" & @CRLF
Case $BN_DBLCLK, $BN_DOUBLECLICKED
$sText = "$BN_DBLCLK, $BN_DOUBLECLICKED" & @CRLF
Case $BN_SETFOCUS
$sText = "$BN_SETFOCUS" & @CRLF
Case $BN_KILLFOCUS
$sText = "$BN_KILLFOCUS" & @CRLF
EndSwitch
MemoWrite($sText & _
"-----------------------------" & @CRLF & _
"WM_COMMAND - Infos:" & @CRLF & _
"-----------------------------" & @CRLF & _
"Code" & @TAB & ":" & $nNotifyCode & @CRLF & _
"CtrlID" & @TAB & ":" & $nID & @CRLF & _
"CtrlHWnd:" & $hCtrl & @CRLF & _
_GUICtrlButton_GetText($hCtrl) & @CRLF)
Return 0 ; Nur bei Klick auf den Button
EndSwitch
; Setzt die Standardverarbeitung der Autoit3-internen Nachrichtenkommandos fort.
; Man kann die Zeile auch weglassen.
; !!! Aber nur 'Return' (ohne jegliche Variable) wird die Verarbeitung der Standardnachrichten unterbinden !!!
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_COMMAND