Главная страница
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.015 c
1-78972
nejest
2003-11-14 15:31
2003.11.24
Определение ширины символа заданного шрифта


1-78932
OlegL
2003-11-12 10:45
2003.11.24
Ресурс в .exe


1-79040
viol-2
2003-11-13 11:39
2003.11.24
Загрузка программы


3-78766
smu
2003-11-03 14:19
2003.11.24
Для чего нужно свойство Datasource компонента IBQuery?


4-79231
Ich Hasse
2003-09-27 18:55
2003.11.24
Ожидание завершения потока