Функція _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