Форум: "WinAPI";
Текущий архив: 2003.11.24;
Скачать: [xml.tar.bz2];
ВнизНужно выдрать иконку 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 вся ветка
Форум: "WinAPI";
Текущий архив: 2003.11.24;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.011 c