Вниз
Скачать: 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.015 c
1-79018
Ru
2003-11-13 16:52
2003.11.24
Как скопировать текст из JvxRichEdit?


8-79060
LevAlexander
2003-07-27 19:18
2003.11.24
Работа с MediaPlayer ...


8-79058
ildar
2003-07-22 09:40
2003.11.24
вхождение одного звукового фрагмента в другой


1-78906
Relaxxx
2003-11-12 17:09
2003.11.24
StringGrid, не люблю его страшно..........


14-79121
Слэш2
2003-11-01 11:34
2003.11.24
Где в инете значки есть на кнопки?




   Наверх