Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.02 c
14-79119
MeF88
2003-11-01 17:50
2003.11.24
Правила конференции softbox.ru


14-79124
Style
2003-10-28 16:13
2003.11.24
SM80, SM300


1-79037
Layner
2003-11-10 13:18
2003.11.24
Господа, подскажите, как правидьно организовать большой проект


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


3-78775
fearless
2003-11-04 10:23
2003.11.24
документы из BLOB в MS WORD




   Наверх