Русское сообщество AutoIt

  • Май 24, 2013, 21:26:41 *
  • Добро пожаловать, Гость
Пожалуйста, войдите или зарегистрируйтесь.

Войти
Расширенный поиск  

Новости:

Открыт новый раздел Полезняшки - Полезные решения, функции и скрипты в помощь кодеру

:Typing:

Реклама

Автор Тема: [Элементы GUI] Определение цвета текста и фона элемента TreeView  (Прочитано 1164 раз)

0 Пользователей и 1 Гость смотрят эту тему.

InnI [?]

  • AutoIt Гуру
  • *****
  • Репутация: 178
  • Offline Offline
  • Сообщений: 395
  • Версия AutoIt: 3.3.8.0
    • Награды
Привет всем!

В "чужом" окне есть контрол SysTreeView32. Некоторые дочерние элементы имеют собственный цвет фона и/или текста. Работаю с этим контролом при помощи GuiTreeView.au3. Не могу найти в этой UDF получение цвета текста и фона элемента - только для всего дерева. Приходится пользоваться поиском цвета пикселя, что не всегда удобно.

Какие ещё есть способы получения цвета текста и фона дочернего элемента TreeView, кроме поиска цвета пикселя?
Спасибо.




  Записан

gregaz [?]

  • AutoIt Гуру
  • *****
  • Репутация: 283
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 1091
  • Версия AutoIt: 3.3.8.1
    • Награды
Попробуй так :
Код: AutoIt [Выделить]
#include <GuiTreeView.au3>
$Run=Run ('hh.exe "C:\Program Files\AutoIt3\AutoIt3.chm::/html/functions/GUISetHelp.htm"')
$hWnd=WinWaitActive("AutoIt Help")
ConsoleWrite ("$hWnd = " &$hWnd& @LF)
$H=ControlGetHandle ( $hWnd, "", "SysTreeView321")
ConsoleWrite ("$h = " & $H & @LF)
$BKColor=_GUICtrlTreeView_GetBkColor($H)
ConsoleWrite ("$BKColor= " & $BKColor & @LF)
;$Color=_GUICtrlTreeView_GetTextColor($H) ; неверно определяет
$Color=_GUICtrlTreeView_GetLineColor($H); костыль, но определяет верно
ConsoleWrite ("$Color= " & $Color & @LF)
 




  Записан
Самая большая проблема – её сформулировать. 

InnI [?]

  • AutoIt Гуру
  • *****

  • Автор темы
  • Репутация: 178
  • Offline Offline
  • Сообщений: 395
  • Версия AutoIt: 3.3.8.0
    • Награды
Спасибо за попытку помочь. Но эта функция определяет цвет линии, соединяющей узлы.
Попробуйте заменить
Код: AutoIt [Выделить]
$Color=_GUICtrlTreeView_GetLineColor($H); костыль, но определяет верно
на
Код: AutoIt [Выделить]
$Color=_GUICtrlTreeView_SetLineColor($H, 0xFF0000); костыль, но определяет верно
и сами увидите.




  Записан

gregaz [?]

  • AutoIt Гуру
  • *****
  • Репутация: 283
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 1091
  • Версия AutoIt: 3.3.8.1
    • Награды
InnI  [?]
Цитата
Но эта функция определяет цвет линии, соединяющей узлы.

Конечно. Однако в большинстве случаев цвет линии совпадает с цветом текста, если не задано отдельно цвет линии




  Записан

InnI [?]

  • AutoIt Гуру
  • *****

  • Автор темы
  • Репутация: 178
  • Offline Offline
  • Сообщений: 395
  • Версия AutoIt: 3.3.8.0
    • Награды
Цитата
Однако в большинстве случаев цвет линии совпадает с цветом текста
К сожалению, в моём случае это не так. И с цветом фона элемента она тоже не совпадает :(




  Записан

gregaz [?]

  • AutoIt Гуру
  • *****
  • Репутация: 283
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 1091
  • Версия AutoIt: 3.3.8.1
    • Награды
Попробуй :
Код: AutoIt [Выделить]
#include <WinAPIEx.au3>
_WinAPI_GetBkColor
_WinAPI_GetTextColor





  Записан

InnI [?]

  • AutoIt Гуру
  • *****

  • Автор темы
  • Репутация: 178
  • Offline Offline
  • Сообщений: 395
  • Версия AutoIt: 3.3.8.0
    • Награды
Изучил работу данных функций. Обе работают с контекстом устройства. В конечном итоге всё сводится к определению цвета пикселя.
Склоняюсь к тому, что другого способа определения цвета фона и шрифта элемента TreeView не существует.




  Записан

Yashied [?]

  • Глобальный модератор
  • AutoIt MVP
  • *
  • *****
  • Репутация: 2298
  • Offline Offline
  • Пол: Мужской
  • Сообщений: 4257
    • Награды
Вы никак не сможете определить цвет текста/фона элементов LV/TV, поскольку они не имеют такого свойства. Вся раскраска происходит динамически на уровне WM_NOTIFY.




  Записан


Думай, прежде чем говорить.

InnI [?]

  • AutoIt Гуру
  • *****

  • Автор темы
  • Репутация: 178
  • Offline Offline
  • Сообщений: 395
  • Версия AutoIt: 3.3.8.0
    • Награды
Спасибо за информацию.
Теперь всё понятно.




  Записан
 


Похожие темы
Тема Автор Ответов Просмотров Последний ответ
[Элементы GUI] Создание элемента treeview с детьми и внуками
GUI - Графический интерфейс пользователя
Latoid 3 2278 Последний ответ Декабрь 03, 2009, 15:21:34
от Latoid
Изменение цвета текста и фона в комбоксе
AutoIt для новичков
Can 13 2306 Последний ответ Июль 21, 2010, 00:59:39
от CreatoR
[Автоматизация] определение цвета
AutoIt для новичков
0xfff 4 1791 Последний ответ Август 27, 2010, 20:41:59
от CreatoR
[Мышь, клавиатура] определение цвета пикселя по координатам
AutoIt для новичков
Safron9999 7 1882 Последний ответ Октябрь 02, 2011, 22:45:35
от Safron9999
Определение цвета пикселя неактивного окна
AutoIt для новичков
overhand 4 2105 Последний ответ Октябрь 23, 2011, 20:43:12
от r35p3ct
Изменение цвета фона кнопки
AutoIt для новичков
Viktor1703 4 1014 Последний ответ Декабрь 03, 2011, 18:30:07
от Viktor1703
Сменить цвет текста и фона самодельного контрола
AutoIt для новичков
Viktor1703 7 2024 Последний ответ Ноябрь 29, 2011, 19:16:55
от Yashied
Узнать цвет фона элемента
AutoIt для новичков
Maks 0 431 Последний ответ Февраль 22, 2012, 17:24:05
от Maks
[Элементы GUI] Как узнать цвет фона элемента (что-нибудь вроде GuiCtrlGETBkColor)?
GUI - Графический интерфейс пользователя
Dm666 2 431 Последний ответ Ноябрь 27, 2012, 08:53:58
от Dm666
Определение цвета с экрана
Стол заказов
GUIMish 4 693 Последний ответ Апрель 12, 2013, 10:33:49
от GUIMish


Реклама

* Последние сообщения на форуме
post Re: [Данные, строки] Помогите c переменной в центре пути
[AutoIt для новичков] roman82101 Сегодня в 21:09:53
post Re: Удаление горячей клавиши
[AutoIt для новичков] eBug Сегодня в 20:29:35
post Re: Удаление горячей клавиши
[AutoIt для новичков] Viktor1703 Сегодня в 20:25:02
post Удаление горячей клавиши
[AutoIt для новичков] eBug Сегодня в 20:21:11
post Re: [Данные, строки] Помогите c переменной в центре пути
[AutoIt для новичков] Viktor1703 Сегодня в 20:16:37
post [Данные, строки] Помогите c переменной в центре пути
[AutoIt для новичков] roman82101 Сегодня в 19:47:56
post Re: StringInStr использование ответа в конструкции If
[AutoIt для новичков] sngr Сегодня в 19:46:20
post Re: Скриншот с вебкамеры
[Стол заказов] lastangel Сегодня в 19:43:41
post StringInStr использование ответа в конструкции If
[AutoIt для новичков] ArgoNaft Сегодня в 19:34:24
post Re: [Окна, Диалоги] как в Chrome вставить значения в невыделеные поля формы
[AutoIt для новичков] coolermen Сегодня в 19:27:44

* Пользователи онлайн
  • Dot Гостей: 90
  • Dot Скрыт: 2
  • Dot Пользователей: 23
  • Dot Пользователи Online: