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

Вниз

Как получить ссылку на иконку окна   Найти похожие ветки 

 
Gerda ©   (2003-11-12 22:26) [0]

Здравствуйте Мастера.
Меня интересует такой вопрос: есть окно, и есть(или нет) в его левом верхнем углу иконка, мне нужно получить ссылку на нее.
Заранне благодарен.


 
DVM ©   (2003-11-12 23:06) [1]

function GetIconFromWindow(hWnd:HWND; bBigIcon:boolean):HICON;
var
BigOrSmall,BigOrSmall2:integer;
hIcon:THandle;
begin
hIcon:=0;
if bBigIcon then
begin
BigOrSmall:=ICON_BIG;
BigOrSmall2:=GCL_HICON;
end
else
begin
BigOrSmall:=ICON_SMALL;
BigOrSmall2:=GCL_HICONSM;
end;
SendMessageTimeout(hWnd, WM_GETICON, BigOrSmall, 0, SMTO_ABORTIFHUNG, 1000, HIcon);
if hIcon=0 then hIcon := GetClassLong(hWnd, BigOrSmall2);
if hIcon=0 then SendMessageTimeout(hWnd, WM_GETICON, BigOrSmall, 1,
SMTO_ABORTIFHUNG, 1000, hIcon);
if hIcon=0 then hIcon := GetClassLong(hWnd, BigOrSmall2);
if hIcon=0 then SendMessageTimeout(hWnd, WM_QUERYDRAGICON, BigOrSmall,
0, SMTO_ABORTIFHUNG, 1000, hIcon);
result:=hIcon;
end;

Можно так. Правда функция несовершенна. Под XP иконки некоторых окон она не достанет. Но этот недостаток легко устраним, если почитать MSDN.



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

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

Наверх




Память: 0.46 MB
Время: 0.051 c
6-49656
Timerman
2003-11-10 23:10
2004.01.16
Как синхронизировать время с локалкой?


14-49745
JibSkeart
2003-12-24 15:11
2004.01.16
Приколна :))


3-49424
elshad_s
2003-12-17 17:34
2004.01.16
Не выполняется весь набор операций в транзакции


1-49589
sVic
2004-01-05 14:05
2004.01.16
Не выгонять лист после печати


1-49621
Shutov
2004-01-05 08:05
2004.01.16
Библиотека qtintf70.dll