Функція _GUICtrlButton_Create

#include _GUICtrlButton_Create ( $hWnd , $sText , $iX , $iY , $iWidth , $iHeight [, $iStyle = - 1 [, $iExStyle = - 1 ]]))

$hWndДескриптор батьківського вікна чи вікна власника
$sTextТекст кнопки
$iXКоордината лівого краю
$iYКоордината верхнього краю
$iWidthШирина кнопки
$iHeightВисота кнопки
$iStyle[необов'язковий]Стиль елемента: $BS_AUTO3STATE - Створює Checkbox з трьома станами, в якому стан по черзі перемикається на "з галочкою", "квадратик" та "невідзначений", при кожному натисканні. $BS_AUTOCHECKBOX - Створює Checkbox з двома станами, в якому стан по черзі перемикається між "з галочкою" та "невідзначений", при кожному натисканні. $BS_AUTORADIOBUTTON - Аналог радіо-кнопки, крім того, коли користувач вибирає його, кнопка автоматично підсвічує себе та видаляє виділення з будь-якої іншої радіо-кнопки з тим самим стилем в одній групі. $BS_FLAT - Плоска кнопка (двовимірний вигляд); не використовує стандартні тіні за контуром, що створюють об'ємний 3D вигляд. $BS_GROUPBOX - Створює прямокутний контур, де інші кнопки групуються. Будь-який текст, пов'язаний із цим стилем, відображається у верхньому лівому куті прямокутника. $BS_PUSHLIKE - Вдає як у кнопки для таких як checkbox, трьох-статусний checkbox, або радіо-кнопки. Кнопка виглядає піднятою, коли не відмічена, і втоплена, коли відзначена.
$BS_DEFPUSHBUTTON – Створює кнопку з жирним чорним контуром. Якщо кнопка знаходиться у діалоговому вікні, користувач може вибрати кнопку, натиснувши клавішу ENTER, навіть якщо кнопка не має фокусу введення. Цей стиль кориснийможливістю користувачеві швидко вибрати найбільш ймовірний варіант, або за умовчанням.
$BS_BOTTOM - Поміщає текст у нижній частині прямокутника кнопки. $BS_CENTER - Поміщає текст у центрі по горизонталі прямокутнику кнопки. $BS_LEFT - Вирівнювання тексту лівим краєм на кнопці (Button) або Checkbox. $BS_MULTILINE - Текст на кнопці в кілька рядків, якщо текст занадто довгий, щоб вміститься на кнопці в один рядок. $BS_RIGHT - Вирівнювання тексту праворуч на кнопці (Button) або Checkbox. $BS_RIGHTBUTTON - Позиція квадратика Checkbox справа. $BS_TOP - Поміщає текст у верхній частині прямокутника кнопки. $BS_VCENTER - Поміщає текст у центрі по вертикалі у прямокутнику кнопки.
$BS_ICON - Вказує на те, що кнопка відображає іконку. $BS_BITMAP - Вказує, що кнопка відображає bitmap.
$BS_NOTIFY - Дозволяє кнопці надсилати повідомлення $BN_KILLFOCUS та $BN_SETFOCUS у батьківське вікно. Зверніть увагу, що кнопки надсилають повідомлення $BN_CLICKED незалежно від цього стилю. Щоб отримати повідомлення подвійного кліка - $BN_DBLCLK , кнопки повинні мати стилі $BS_RADIOBUTTON або $BS_OWNERDRAW.
Стилі Vista: $BS_SPLITBUTTON - Створює розділену кнопку. Розділена кнопка має стрілку списку, що випадає. $BS_DEFSPLITBUTTON - Створює розділену кнопку, яка веде себе як кнопка зі стилем $BS_PUSHBUTTON , але також має характерну appearance. $BS_COMMANDLINK - Створити список кнопок клавіші $BS_DEFCOMMANDLINK - Створити список кнопок кнопки, що використовується як $BS_PUSHBUTTON style button.
За замовчуванням: ( -1) : відсутній Примусово : $WS_CHILD , $WS_TABSTOP , $WS_VISIBLE , $BS_NOTIFY
$iExStyle[необов'язковий]Розширений стиль елемента. Відповідає стандартним константам $WS_EX_.

Успіх:Повертає дескриптор кнопки
Помилка:Повертає 0

Для зазначених констант необхідний ButtonConstants.au3

Ця функція призначена для досвідчених користувачів та вивчення того, як елемент працює.

Global $btn , $rdo , $chk , $iMemo

$hGUI = GUICreate ( "Створення кнопки" , 400 , 400 ) $iMemo = GUICtrlCreateEdit ( "" , 119 , 10 , 276 , 374 , $WS_VSCROLL ) GUICtrlSetFont ( $0 "Courier New")

$btn = _GUICtrlButton_Create ( $hGUI , "Кнопка1" , 10 , 10 , 90 , 50 )

$rdo = _GUICtrlButton_Create ( $hGUI , "Радіо1" , 10 , 80 , 90 , 50 , $BS_AUTORADIOBUTTON )

$chk = _GUICtrlButton_Create ( $hGUI , "Check1" , 10 , 130 , 90 , 50 , $BS_AUTO3STATE )

GUIRegisterMsg ( $WM_COMMAND , "WM_COMMAND" ) GUIRegisterMsg ( $WM_NOTIFY , "WM_NOTIFY" )

MemoWrite ( "Дескриптор Кнопка1: " & $btn ) MemoWrite ( "Дескриптор Радіо1 : " & $rdo ) MemoWrite ( "Дескриптор Check1 : " & $chk & @CRLF )

; Записує рядок в елемент для нотаток 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 = DllStruC ; int IDFrom; $hCtrl = DllStructGetData ($tNMBHOTITEM , "hWndFrom" ) Локальний $dwFlags = DllStructGetData ( $tNMBHOTITEM , "dwFlags") Локальний $sText = ""

Перемикач $nNotifyCode Case $BCN_HOTITEMCHANGE ; Win XP і вище Якщо BitAND ( $dwFlags , 0x10 ) = 0x10 Then $sText = "$BCN_HOTITEMCHANGE - Наведено: " & @CRLF

; Реакція на натискання кнопки Func WM_COMMAND ( $hWnd , $Msg , $wParam , $lParam ) #forceref $hWnd, $Msg Локальний $nNotifyCode = BitShift ( $wParam , 16 ) Локальний $nID = BitAND ( $wParam , 0x0000FFFF ) Локальний $hCtrl = $lParam Локальний $sText = ""

Перемикач $hCtrl Case $btn , $rdo , $chk Перемикач $nNotifyCode Case $BN_CLICKED $sText = "$BN_CLICKED" Case $BN_PAINT $sText = " $BN_PAINT" Випадок $BN_PUSHED , $BN_HILITE $sText = "$BN_PUSHED, $BN_HILITE" Випадок $BN_UNPUSHED , $BN_UNHILITE $sText = "$BN_UNPUSHED" Випадок $BN_DISABLE $sText = "$BN_DISABLE" Випадок $BN_DBLCLK , $BN_DOUBLECLICKED $sText = "$BN_DBLCLK, $BN_DOUBLECLICKED" Випадок $BN_SETFOCUS $sText = "$BN_SETFOCUS" Випадок $BN_KILLFOCUS $sText = "$BN_KILLFOCUS" EndSwitch MemoWrite ( _ "--------------------- -------" & @CRLF & _ "WM_COMMAND - інформація:" & @CRLF & _ "-------- --------------" & @CRLF & _ "Код увідомлення" & @TAB & $nNotifyCode & ', ' & $sText & @CRLF & _ "Ідентифікатор.." & @TAB & $nID & @CRLF & _ "Дескриптор . " & @TAB & $hCtrl & @CRLF & _ "Текст кнопки .." & @TAB & _GUICtrlButton_GetText ( $hCtrl ) & @CRLF ) Повернути 0 ; Тільки для тесту нажатия кнопки EndSwitch ; Продовження роботи внутрішньої команди AutoIt3. ; Ви також можете завершити, використовуючи рядок з виходом із функції. ; . Но тільки'Return' (без значення) без продовження ; обробника внутрішніх команд AutoIt3 надалі. Return $GUI_RUNDEFMSG EndFunc ;==>WM_COMMAND