|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » [решено] ListView-изменение цвета текста всей строки при выборе CHECKBOXES |
|
[решено] ListView-изменение цвета текста всей строки при выборе CHECKBOXES
|
Старожил Сообщения: 352 |
Профиль | Отправить PM | Цитировать Приветствую ! Вопрос к профессионалам, скорее всего. Из просторов интернета накидал скрипт, но не могу понять как при выделении чекбокса изменять цвет строки.
#include-once #include <GUIConstantsEx.au3> #include <WindowsConstants.au3> #include <GuiListView.au3> GUICreate("Как изменить цвет текста всей строки при выборе CHECKBOXES ?", 600, 600) Global $ListView_TEST = GUICtrlCreateListView('', 100, 270, 400, 194, $LVS_SHOWSELALWAYS, $LVS_EX_FULLROWSELECT + $LVS_EX_CHECKBOXES + $WS_EX_CLIENTEDGE) _GUICtrlListView_InsertColumn($ListView_TEST, 0, "Наименование 1", 200) _GUICtrlListView_InsertColumn($ListView_TEST, 2, "Наименование 2", 200) _GUICtrlListView_AddItem($ListView_TEST, 'Наименование 1-01', 0) _GUICtrlListView_AddSubItem($ListView_TEST, 0, "Наименование 2-01", 1) _GUICtrlListView_AddItem($ListView_TEST, 'Наименование 1-02', 1) _GUICtrlListView_AddSubItem($ListView_TEST, 1, "Наименование 2-02", 1) _GUICtrlListView_AddItem($ListView_TEST, 'Наименование 1-03', 2) _GUICtrlListView_AddSubItem($ListView_TEST, 2, "Наименование 2-03", 1) _GUICtrlListView_AddItem($ListView_TEST, 'Наименование 1-04', 3) _GUICtrlListView_AddSubItem($ListView_TEST, 3, "Наименование 2-04", 1) GUIRegisterMsg($WM_NOTIFY, 'WM_NOTIFY') GUISetState() Do Until GUIGetMsg() = $GUI_EVENT_CLOSE GUIDelete() Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam) Local $tNMHDR, $iIDFrom, $iCode $tNMHDR = DllStructCreate($tagNMHDR, $lParam) $iIDFrom = DllStructGetData($tNMHDR, "IDFrom") $iCode = DllStructGetData($tNMHDR, "Code") Switch $iIDFrom Case $ListView_TEST ; It is our ListView Switch $iCode Case $NM_CUSTOMDRAW Local $tNMLVCUSTOMDRAW = DllStructCreate($tagNMLVCUSTOMDRAW, $lParam) Local $dwDrawStage = DllStructGetData($tNMLVCUSTOMDRAW, "dwDrawStage") Switch $dwDrawStage Case $CDDS_PREPAINT ; Before the paint cycle begins Return $CDRF_NOTIFYITEMDRAW Case $CDDS_ITEMPREPAINT ; Before painting an item Return $CDRF_NOTIFYSUBITEMDRAW ; Notify the parent window of any SUBITEM-related drawing operations Case BitOR($CDDS_ITEMPREPAINT, $CDDS_SUBITEM) ; Before painting a subitem Local $iItemParam = DllStructGetData($tNMLVCUSTOMDRAW, "lItemlParam") ; Item param (item control ID) Local $iSubItem = DllStructGetData($tNMLVCUSTOMDRAW, "iSubItem") ; Subitem index DllStructSetData($tNMLVCUSTOMDRAW, "ClrText", 0xFF00FF) ; Backcolor white EndSwitch Case $NM_CLICK ; An item was clicked $tInfo = DllStructCreate($tagNMITEMACTIVATE, $lParam) $iIndex = DllStructGetData($tInfo, "Index") $SubItem = DllStructGetData($tInfo, "SubItem") ; $iItemParam = DllStructGetData( $tInfo, "lItemlParam" ) If $SubItem = 0 Then $hListViewRead = _GUICtrlListView_GetItemTextArray($ListView_TEST, $iIndex) ; MsgBox_Info($hListViewRead[2] & @CRLF & _GUICtrlListView_GetItemChecked($ListView_TEST, $iIndex)) ;Перевёртышь If _GUICtrlListView_GetItemChecked($ListView_TEST, $iIndex) = False Then ;Выбрано Else ;Не выбрано EndIf EndIf EndSwitch EndSwitch EndFunc ;==>WM_NOTIFY |
|
Отправлено: 14:49, 22-08-2018 |
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать -TRM-, такое лучше сразу на Русское сообщество AutoIt помещать, здесь они если и появляются, то очень редко.
|
Отправлено: 15:02, 22-08-2018 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Must AutoIt Сообщения: 3054
|
Профиль | Сайт | Отправить PM | Цитировать Func WM_NOTIFY($hWnd, $iMsg, $wParam, $lParam) Local $tNMHDR, $iIDFrom, $iCode Local $tNMHDR = DllStructCreate($tagNMHDR, $lParam) Local $iIDFrom = DllStructGetData($tNMHDR, "IDFrom") Local $iCode = DllStructGetData($tNMHDR, "Code") Switch $iIDFrom Case $ListView_TEST ; It is our ListView Switch $iCode Case $NM_CUSTOMDRAW Local $tNMLVCUSTOMDRAW = DllStructCreate($tagNMLVCUSTOMDRAW, $lParam) Local $dwDrawStage = DllStructGetData($tNMLVCUSTOMDRAW, "dwDrawStage") Switch $dwDrawStage Case $CDDS_PREPAINT ; Before the paint cycle begins Return $CDRF_NOTIFYITEMDRAW Case $CDDS_ITEMPREPAINT ; Before painting an item Return $CDRF_NOTIFYSUBITEMDRAW ; Notify the parent window of any SUBITEM-related drawing operations Case BitOR($CDDS_ITEMPREPAINT, $CDDS_SUBITEM) ; Before painting a subitem Local $iIndex = DllStructGetData($tNMLVCUSTOMDRAW, "dwItemSpec") If _GUICtrlListView_GetItemChecked($ListView_TEST, $iIndex) Then DllStructSetData($tNMLVCUSTOMDRAW, "ClrText", 0xFF00FF) Else DllStructSetData($tNMLVCUSTOMDRAW, "ClrText", 0xFF0000) EndIf EndSwitch EndSwitch EndSwitch EndFunc |
------- Отправлено: 19:18, 23-08-2018 | #3 |
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Интернет - Изменение цвета картинки при переходе в электронную почту | Evgenia78 | Microsoft Windows 7 | 13 | 23-11-2014 22:34 | |
VBS/WSH/JS - [решено] Поиск строки по маске в txt файле и замена всей строки из InputBox | ultrarare | Скриптовые языки администрирования Windows | 11 | 03-07-2013 14:37 | |
Vista / 2008 - Изменение цвета текста во время установки | Smirniy | Автоматическая установка Windows 11 / 10 / 8 / 7 / Vista | 0 | 30-09-2009 22:18 | |
Изменение надписи ос при выборе системы. | roootxp | Хочу все знать | 8 | 15-01-2009 09:06 | |
[решено] Изменение цвета фона ячейки таблицы при нажатии чекбокса | dmitryst | Вебмастеру | 4 | 18-09-2008 03:59 |
|