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

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

фон под текстом у иконак на рбочем столе [D5, Win95/98, WinME, Win2k, WinXP]


Igit ©   (2002-06-06 22:05:00) 

Как мне на чистом WinApi сделать фон под текстом у иконак на рбочем столе прозрачным. Тот совет в форуме не работает
(по подробнее, pls:)


cdaDmitriy   (2002-06-11 19:37:00) [1]

Все работает <easy> спасибо
но все константы

Const LVM_FIRST = 4096;
Const LVM_GETTEXTBKCOLOR = 4133;
Const LVM_SETTEXTBKCOLOR = 4134;
Const CLR_NONE
LVM_SETTEXTCOLOR

описаны в модуле Commctrl;

включаешь
uses Commctrl;
и OK


easy   (2002-06-10 16:31:00) [2]

SendMessage(SysListView32, LVM_SETTEXTCOLOR, 0, clRed);


easy   (2002-06-10 15:48:00) [3]

LVM_SETTEXTCOLOR:=4132


Igit   (2002-06-09 16:45:00) [4]

Я не очень (вообще почти) понимаю WinApi :((


Igit   (2002-06-09 16:43:00) [5]

Чему равен:
Const LVM_SETTEXTCOLOR = ????;
и где его писать?


easy   (2002-06-08 16:49:00) [6]

to Igit: LVM_SETTEXTCOLOR


SPeller   (2002-06-08 03:17:00) [7]

2easy (07.06.02 17:45)
> ...прозрачность фона надо контролировать постоянно...

Умнея Microangelo делает фон прозрачным и ставит свой цвет. Убиваю его, а ярлыка всё-равно остаются прежними. Может он внедряет свой поток куда-нить?


Igit   (2002-06-07 19:33:00) [8]

Работает:)) А как цвет текста установить?


easy   (2002-06-07 17:45:00) [9]

...прозрачность фона надо контролировать постоянно...
Так что лучше всю эту фишку засунуть в тимер, или ставить хук на LVM_SETTEXTBKCOLOR...


easy   (2002-06-07 16:22:00) [10]

...вот кусочек юнита:
var
Form1: TForm1;
Const LVM_FIRST = 4096;
Const LVM_GETTEXTBKCOLOR = 4133;
Const LVM_SETTEXTBKCOLOR = 4134;
Const CLR_NONE = 4294967295;
implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var SysListView32,SHELLDLLDefView:hwnd;
begin
SHELLDLLDefView := FindWindowEx(FindWindow("Progman", "Program Manager"), 0, "SHELLDLL_DefView", nil);
If SHELLDLLDefView <> 0 Then
SysListView32 := FindWindowEx(SHELLDLLDefView, 0, "SysListView32", nil);
If SysListView32 <> 0 Then
begin
If SendMessage(SysListView32, LVM_GETTEXTBKCOLOR, 0, 0) <> CLR_NONE Then
begin

SendMessage(SysListView32, LVM_SETTEXTBKCOLOR, 0, CLR_NONE);
InvalidateRect(SysListView32, 0, True);
UpdateWindow(SysListView32);

End;
End;

end;

...может, немного кривовато, наспех сляпал, но зато работает.8))


Наверх

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