Snippets ( Checkboxes )
From AutoIt Wiki
Contents |
Are All Items Checked?
Author: guinness
#include <GUIConstantsEx.au3> #include <GUIListView.au3> #include <WindowsConstants.au3> Example() Func Example() Local Const $hGUI = GUICreate("", 400, 300, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX)) Local $iListView = GUICtrlCreateListView("", 0, 0, 400, 270) Local Const $hListView = GUICtrlGetHandle($iListView) _GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES)) GUICtrlSetResizing(-1, $GUI_DOCKBORDERS) Local $iAllSelected = GUICtrlCreateButton("All Selected?", 400 - 90, 275, 85, 22.5) GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKSIZE + $GUI_DOCKBOTTOM) GUISetState(@SW_SHOWNORMAL, $hGUI) __ListViewFill($hListView, Random(1, 5, 1), Random(2, 15, 1), 1) ; Randomly fill data in a ListView. While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop Case $iAllSelected MsgBox(4096, "", "If all items are checked this will Return True: " & _GUICtrlListView_AllChecked($hListView)) EndSwitch WEnd Return GUIDelete($hGUI) EndFunc ;==>Example Func _GUICtrlListView_AllChecked(Const $hListView) Local $iChecked = 0 Local Const $iCount = _GUICtrlListView_GetItemCount($hListView) For $i = 0 To $iCount - 1 If _GUICtrlListView_GetItemChecked($hListView, $i) Then $iChecked += 1 EndIf Next Return $iChecked = $iCount ; Returns True - all items are checked or False - some are checked. EndFunc ;==>_GUICtrlListView_AllChecked Func __ListViewFill(Const $hListView, Const $iColumns, Const $iRows, Const $iCheckboxes = 0) ; Randomly fill data in a ListView. For $A = 0 To $iColumns - 1 _GUICtrlListView_InsertColumn($hListView, $A, "Column " & $A + 1, 50) _GUICtrlListView_SetColumnWidth($hListView, $A - 1, -2) Next For $A = 0 To $iRows - 1 _GUICtrlListView_AddItem($hListView, Chr(Random(65, 90, 1)) & " - Row " & $A + 1 & ": Col 1", $A) If Random(0, 1, 1) And $iCheckboxes Then _GUICtrlListView_SetItemChecked($hListView, $A) EndIf For $B = 1 To $iColumns _GUICtrlListView_AddSubItem($hListView, $A, "Row " & $A + 1 & ": Col " & $B + 1, $B) Next Next EndFunc ;==>__ListViewFill
_IsChecked
Author: Zedna
Modified: guinness
#include <GUIConstantsEx.au3> Example() Func Example() Local Const $aState[2] = [$GUI_CHECKED, $GUI_UNCHECKED] GUICreate('') Local Const $iCheckbox = GUICtrlCreateCheckbox("Checkbox Example", 10, 10, 120, 20) GUICtrlSetState($iCheckbox, $aState[Random(0, 1, 1)]) ; Randomise whether or not the checkbox is checked. GUISetState(@SW_SHOWNORMAL) ; Check the state of the checkbox. MsgBox(4096, '', "Is the checkbox checked: " & _IsChecked($iCheckbox)) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop EndSwitch WEnd EndFunc ;==>Example Func _IsChecked(Const $iControlID) Return BitAND(GUICtrlRead($iControlID), $GUI_CHECKED) = $GUI_CHECKED EndFunc ;==>_IsChecked
Listview With Checkboxes
Author: Zedna
#include <GUIConstantsEx.au3> #include <GUIListView.au3> #include <WindowsConstants.au3> Example() Func Example() Local Const $hGUI = GUICreate("", 400, 300, -1, -1, BitOR($GUI_SS_DEFAULT_GUI, $WS_MAXIMIZEBOX, $WS_SIZEBOX)) Local Const $iListView = GUICtrlCreateListView("", 0, 0, 400, 270) Local Const $hListView = GUICtrlGetHandle($iListView) _GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_CHECKBOXES)) GUICtrlSetResizing(-1, $GUI_DOCKBORDERS) Local $iSelectionState = GUICtrlCreateButton("Change State", 400 - 90, 275, 85, 22.5) GUICtrlSetResizing(-1, $GUI_DOCKRIGHT + $GUI_DOCKSIZE + $GUI_DOCKBOTTOM) GUISetState(@SW_SHOWNORMAL, $hGUI) __ListViewFill($hListView, Random(1, 5, 1), Random(2, 15, 1), 1) ; Randomly fill data in a ListView. While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE ExitLoop Case $iSelectionState _GUICtrlListView_SetCheckedStates($hListView, 2) MsgBox(4096, "", "All items were inverted, so if an item was checked before it was unchecked afterwards.") _GUICtrlListView_SetCheckedStates($hListView, 0) MsgBox(4096, "", "All items were unchecked.") _GUICtrlListView_SetCheckedStates($hListView, 1) MsgBox(4096, "", "All items were checked.") EndSwitch WEnd Return GUIDelete($hGUI) EndFunc ;==>Example ;~ $iType: 0 - UnCheck all, 1 - Check all & 2 - Invert selection. Func _GUICtrlListView_SetCheckedStates(Const $hListView, Const $iType) ; By Zedna, Modified by guinness. Local $fState = False Local Const $iCount = _GUICtrlListView_GetItemCount($hListView) If $iType < 0 Or $iType > 2 Then Return SetError(1, 0, 0) EndIf If $iType Then $fState = True EndIf For $i = 0 To $iCount - 1 If $iType = 2 Then $fState = Not _GUICtrlListView_GetItemChecked($hListView, $i) ; Invert checked state with $iType 2. EndIf _GUICtrlListView_SetItemChecked($hListView, $i, $fState) Next EndFunc ;==>_GUICtrlListView_SetCheckedStates Func __ListViewFill(Const $hListView, Const $iColumns, Const $iRows, Const $iCheckboxes = 0) ; Randomly fill data in a ListView. For $A = 0 To $iColumns - 1 _GUICtrlListView_InsertColumn($hListView, $A, "Column " & $A + 1, 50) _GUICtrlListView_SetColumnWidth($hListView, $A - 1, -2) Next For $A = 0 To $iRows - 1 _GUICtrlListView_AddItem($hListView, Chr(Random(65, 90, 1)) & " - Row " & $A + 1 & ": Col 1", $A) If Random(0, 1, 1) And $iCheckboxes Then _GUICtrlListView_SetItemChecked($hListView, $A) EndIf For $B = 1 To $iColumns _GUICtrlListView_AddSubItem($hListView, $A, "Row " & $A + 1 & ": Col " & $B + 1, $B) Next Next EndFunc ;==>__ListViewFill
Transparent Radio Button
Author: Valuater
#include <GUIConstantsEx.au3> #include <ListBoxConstants.au3> #include <GUIConstants.au3> MsgBox(0x0, "", @AutoItVersion) GUICreate("Transparency", 265, 295, @DesktopWidth/2-160, @DesktopHeight/2-90, -1, 0x00000218) GUISetState(@SW_SHOWNORMAL) Global $BI = GUICtrlCreatePic("C:\Temp\Backgrnd.jpg", 0, 0, 265, 295) GUICtrlSetState(-1, $GUI_DISABLE) ;^) Make a group. Global Const $Group = GUICtrlCreateGroup("", 10, 10, 100, 170) ;^) Radio buttons. Global Const $radio1 = _GUICtrlCreateRadio("Radio 1", 20, 30, 80, 15, $GUI_BKCOLOR_TRANSPARENT, 0x00ff00) ; Green Global Const $radio2 = _GUICtrlCreateRadio("Radio 2", 20, 50, 80, 15, $GUI_BKCOLOR_TRANSPARENT, 0xFFFFFF) ; White Global Const $radio3 = _GUICtrlCreateRadio("Radio 3", 20, 70, 80, 15, $GUI_BKCOLOR_TRANSPARENT, 0xff0000) ; Red Global Const $radio4 = _GUICtrlCreateRadio("Radio 4", 20, 90, 80, 15, $GUI_BKCOLOR_TRANSPARENT) Global Const $radio5 = _GUICtrlCreateRadio("Radio 5", 20, 110, 80, 15, $GUI_BKCOLOR_TRANSPARENT) Global Const $radio6 = _GUICtrlCreateRadio("Radio 6", 20, 130, 80, 15, $GUI_BKCOLOR_TRANSPARENT) Global Const $radio7 = _GUICtrlCreateRadio("Radio 7", 20, 150, 80, 15, $GUI_BKCOLOR_TRANSPARENT) ;^) Buttonsf Global Const $Butt1 = GUICtrlCreateButton("One", 10, 263, 50, 20) Global Const $Butt2 = GUICtrlCreateButton("Two", 75, 263, 50, 20) Global Const $Butt3 = GUICtrlCreateButton("Three", 140, 263, 50, 20) Global Const $Butt4 = GUICtrlCreateButton("Four", 205, 263, 50, 20) ;^) List with label GUICtrlCreateLabel("List", 130, 10, 80, 15) GUICtrlSetBkColor(-1, $GUI_BKCOLOR_TRANSPARENT) Global Const $List = GUICtrlCreateList("", 120, 25, 135, 227,$LBS_NoIntegralHeight) ;^) GUI is done While GUIGetMsg() <> -3 Wend Func _GUICtrlCreateRadio(Const $rText, Const $rLeft, Const $rTop, Const $rLength, Const $rHeight, Const $rBackColor = "", Const $rTextColor = "") Local Const $PCRadio = GUICtrlCreateRadio("", $rLeft, $rTop, 12, 12) GUICtrlCreateLabel($rText, $rLeft + 15, $rTop, $rLength - 15, $rHeight) If $rTextColor <> "" Then GUICtrlSetColor(-1, $rTextColor) If $rBackColor <> "" Then GUICtrlSetBkColor(-1, $rBackColor) Return $PCRadio EndFunc