Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.08.07;
Скачать: CL | DM;

Вниз

Как сделать прозрачные надписи под значками?   Найти похожие ветки 

 
Sceleton   (2003-05-31 12:52) [0]

Может ли мне кто подсказать, есть ли функция WinAPI, при помощи которой можно убрать фон надписей под значками на рабочем столе?


 
Yanis ©   (2003-05-31 13:41) [1]

Кажется таких API нету.
Но вот текст с www.sources.ru:


unit DeskIcons;

interface
uses Graphics; // Будет использоваться TColor

procedure SetDesktopIconColor(Forground, Background: TColor; Trans: Boolean);
procedure SetDefaultIconColors;

implementation
uses Windows, CommCtrl; // будут использоваться HWND и ListView_XXXXX

procedure SetDesktopIconColor(Forground, Background: TColor; Trans: Boolean);

var
Window: HWND;
begin
// Находим нужное окно в три этапа
Window := FindWindow("Progman", "Program Manager");
// Используем FindWindowEx для нахождения дочернего окна
Window := FindWindowEx(Window, HWND(nil), "SHELLDLL_DefView", "");
// SysListView32, это список с иконками на рабочем столе
Window := FindWindowEx(Window, HWND(nil), "SysListView32", "");
// Используем макрос для очистки цвета фона
if Trans then
ListView_SetTextBkColor(Window, $ffffffff) // фоновый цвет
else
ListView_SetTextBkColor(Window, Background); // фоновый цвет
ListView_SetTextColor(Window, Forground); // передний цвет
// теперь перерисовываем иконки
ListView_RedrawItems(Window, 0, ListView_GetItemCount(Window) - 1);
UpdateWindow(Window); // даём команду "немедленно перерисовать"
end;

procedure SetDefaultIconColors;
{ Эта процедура устанавливает цвета, которые заданы в
windows по умолчанию }
var
Kind: Integer;
Color: TColor;
begin
Kind := COLOR_DESKTOP;
Color := GetSysColor(COLOR_DESKTOP);
SetSysColors(1, Kind, Color);
end;

end.



 
Sceleton   (2003-06-02 10:55) [2]

Спасибо. Работает. Правда только после небольшой переделки.


 
Yanis ©   (2003-06-02 15:45) [3]

Если не лень помочь брату программисту, то код в студию, прошу!


 
Sceleton   (2003-06-05 10:54) [4]

Короче, надо подкорректировать процедуру SetDesktopIconColor:

procedure SetDesktopIconColor(Forground, Background: TColor; Trans: Boolean);
var H: THandle;
begin
H:=GetWindow(GetWindow(FindWindow("progman", nil), GW_CHILD), GW_CHILD);
if Trans then
ListView_SetTextBkColor(H, $FFFFFFFF)
else
ListView_SetTextBkColor(H, Background);
ListView_SetTextColor(H, Forground);
ListView_RedrawItems(H, 0, ListView_GetItemCount(H) - 1);
UpdateWindow(H);
end;



Страницы: 1 вся ветка

Текущий архив: 2003.08.07;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.023 c
14-20810
sergey2.1
2003-07-21 16:10
2003.08.07
Зачем?


1-20613
Buffoon
2003-07-24 19:35
2003.08.07
выделение строки в StringGrid


3-20404
Alex_x
2003-07-16 10:12
2003.08.07
---|Ветка была без названия|---


14-20689
vidiv
2003-07-20 13:39
2003.08.07
Как грамотно на PHP узнать какой браузер у клиента?


1-20545
nevalex
2003-07-23 13:32
2003.08.07
Параметр с несколькими файлами в названии которых есть пробелы