Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Сменить фон TreeView


Babay ©   (2006-04-04 13:43:00) 

Подскажите как средствами АПИ изменить фон элемента TreeView если я знаю его HWND

Делаю так:

Const GWL_STYLE  = (-16);
Const TVS_HASLINES = 2;
Const TV_FIRST  = $1100 ;
Const TVM_SETBKCOLOR  = (TV_FIRST + 29) ;

....

SendMessage(HWND,TVM_SETBKCOLOR, 0, rgb(255,0,0));
lngStyle:= GetWindowLong(HWND, GWL_STYLE);
SetWindowLong(HWND, GWL_STYLE, lngStyle xor TVS_HASLINES);
SetWindowLong(HWND, GWL_STYLE, lngStyle);


но цвет фона меняется только под буквами, а мне надо чтоб весь элемент перекрасился.


DVM   (2006-04-05 11:06:00) [1]


> Вся беда в том что этот элемент не в моем окне, у меня есть
> только HWND, и я немогу отработать это сообщение

С пом., например, хуков, внедряешься в адресное пространство другого процесса, там подменяешь оконную процедуру нужного TreeView на свою (SetWindowLong) и для всех сообщений кроме WM_ERASEBKGND вызываешь старую оконную процедуру, для WM_ERASEBKGND свою.


Babay   (2006-04-04 17:51:00) [2]

в кратце так (одна из маленьких подзадач).
есть прога написанная на Bilder-е (тока exe файл), в ней есть треевиев, надо из другой проги поменять у этого треевиева фон.
Вот цвет фона бод буквами и буквы менять удается, а так чтоб весь фон чета никак.
Ну примерно так.
Неспрашивайте меня почему такая задача, ну просто так вышло... долго объяснять.


Игорь Шевченко   (2006-04-04 16:13:00) [3]

Babay ©   (04.04.06 16:12) [2]


> Вся беда в том что этот элемент не в моем окне, у меня есть
> только HWND, и я немогу отработать это сообщение


А в чем суть задачи состоит ? Может, ее можно иначе решить ?


Babay   (2006-04-04 16:12:00) [4]

Вся беда в том что этот элемент не в моем окне, у меня есть только HWND, и я немогу отработать это сообщение
.... или я чего не понял?


Игорь Шевченко   (2006-04-04 13:54:00) [5]


> а мне надо чтоб весь элемент перекрасился.


Попробуй обработать WM_ERASEBKGND у TreeView


Наверх

Титульная страница Поиск, карта сайта Написать письмо