Что нового

[Элементы GUI] Checkbox в таблице

k790

Новичок
Сообщения
239
Репутация
1
Всем привет!

Подскажите пожалуйста, как сделать "таблицу" со столбцом, где будут checkbox, а в других описание.

То есть есть некий массив, который меняется, но надо выбрать нужные строки и произвести с ними некие действия.
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
Код:
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <WindowsConstants.au3>
$GUI = GUICreate("", 422, 260)
$ListView = GUICtrlCreateListView("Галочки|Пояснения к ним", 16, 12, 338, 214, -1, BitOR($WS_EX_CLIENTEDGE,$LVS_EX_CHECKBOXES))
$ListView_0 = GUICtrlCreateListViewItem("Check1|Это для чего то...", $ListView)
$ListView_1 = GUICtrlCreateListViewItem("Check2|А это просто так", $ListView)
GUICtrlSendMsg($ListView_0, $LVM_SETCOLUMNWIDTH, 0, -1)
GUICtrlSendMsg($ListView_1, $LVM_SETCOLUMNWIDTH, 1, -1)
GUISetState(@SW_SHOW,$GUI)
While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
	EndSwitch
WEnd
 
Автор
K

k790

Новичок
Сообщения
239
Репутация
1
MnM
Спасибо, но вот только как считать нажатия checkbox'а?
И для чего:
Код:
GUICtrlSendMsg($ListView_0, $LVM_SETCOLUMNWIDTH, 0, -1)
GUICtrlSendMsg($ListView_1, $LVM_SETCOLUMNWIDTH, 1, -1)
 

MnM

Post-Hardcore
Сообщения
679
Репутация
90
k790[/ сказал(а):
Установка ширины колонки по тексту(Что бы виден был весь), можно установить стабильный - вместо "-1" указать ширину в пикселях.

k790 сказал(а):
как считать нажатия checkbox'а
Функция wm_notify
Код:
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <GuiListView.au3>
#include <WindowsConstants.au3>
$GUI = GUICreate("", 422, 260)
$ListView = GUICtrlCreateListView("Галочки|Пояснения к ним", 16, 12, 338, 214, -1, BitOR($WS_EX_CLIENTEDGE,$LVS_EX_CHECKBOXES))
$ListView_0 = GUICtrlCreateListViewItem("Check1|Это для чего то...", $ListView)
$ListView_1 = GUICtrlCreateListViewItem("Check2|А это просто так", $ListView)
GUICtrlSendMsg($ListView_0, $LVM_SETCOLUMNWIDTH, 0, -1)
GUICtrlSendMsg($ListView_1, $LVM_SETCOLUMNWIDTH, 1, -1)
GUIRegisterMsg($wm_notify,"__wm_notify")
GUISetState(@SW_SHOW,$GUI)
While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
    EndSwitch
WEnd

Func __WM_NOTIFY($hWnd,$Msg,$wParam,$lParam)
	If $hWnd=$GUI Then
		Local $tNMHDR=DllStructCreate($tagNMHDR,$lParam)
		Local $Code,$idControl
		$Code=DllStructGetData($tNMHDR,"Code")
		$idControl=DllStructGetData($tNMHDR,"idfrom")
		Switch $idControl
			Case $ListView
				Switch $Code
					Case $LVN_ITEMCHANGED
						MsgBox(64,"","Вы отметили или сняли галочку")
				EndSwitch
		EndSwitch
	EndIf
EndFunc
 
Верх