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

Вниз

Нужно выдрать иконку MDIChild окна   Найти похожие ветки 

 
Wizard_Ex ©   (2003-09-29 17:43) [0]

ХМ!
Icon.Handle := GetClassLong(AHandle,GCL_HICONSM);

AHandle - Handle MDICHild окна

а почему-то Icon.Handle равен нулю
Как быть?


 
Игорь Шевченко ©   (2003-09-29 18:01) [1]

WM_GETICON


 
jonni ©   (2003-09-30 00:03) [2]

function GetIconFromWindow(hWnd:HWND;):HICON;
var
Ico:HICON;
begin
Ico:=0;
SendMessageTimeout(hwnd, WM_GETICON, ICON_SMALL, 0, SMTO_ABORTIFHUNG, 1000, LongWord(ico));
if (ico = 0) then ico := GetClassLong(hwnd, GCL_HICONSM);
if (ico = 0) then SendMessageTimeout(hwnd, WM_GETICON, ICON_BIG, 0, SMTO_ABORTIFHUNG, 1000, LongWord(ico));
if (ico = 0) then ico := GetClassLong(hwnd, GCL_HICON);
if (ico = 0) then SendMessageTimeout(hwnd, WM_QUERYDRAGICON, 0, 0, SMTO_ABORTIFHUNG, 1000, LongWord(ico));
if (ico = 0) then ico:=LoadIcon(0,IDI_APPLICATION);
result:=Ico;
end;


 
Wizard_Ex ©   (2003-09-30 14:59) [3]

ХМ, а про WM_QUERYDRAGICON не знал, что поможет, хотя именно с ее помощью и возвращается то что надо

но, небольшое НО
нужна маленькая иконка, а Handle от большой (32*32)

сделал так
Icon := TIcon.Create;
Icon.Handle := GetIconFromWindow(AHandle);

sbButton.Glyph.Width := 16;
sbButton.Glyph.Height := 16;

DrawIconEx(sbButton.Glyph.Canvas.Handle,0,0,Icon.Handle,16,16,0,0,DI_NORMAL);
Icon.ReleaseHandle;
Icon.Free;
Работает

Всем спасибо!



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

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

Наверх




Память: 0.47 MB
Время: 0.017 c
6-79085
Mr.Ice
2003-09-28 02:31
2003.11.24
webbrowser


1-78884
Maks Realov
2003-11-12 19:51
2003.11.24
Динамические массивы в Паскале - структура?


3-78852
Andrey V.
2003-11-06 07:59
2003.11.24
Поле типа DATE и значение NULL


6-79077
DelphiN!
2003-09-27 08:27
2003.11.24
Поиск в локальной сети включеных компов


3-78790
Alibaba
2003-11-04 13:17
2003.11.24
Результат