|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Получить иконку окна
Здравствуйте, уважаемые форумчане!
У меня простой вопрос, но нигде не могу найти ответа: как на форме нарисовать иконку этого окна? |
#2
|
|||
|
|||
А тебе у своего окна или у чужого.
Если у своего, то тут все просто. В качестве иконки окна (если ты сам не назначал иконку отдельному окну, а в этом случае ты уже ее имеешь) всегда используется иконка приложения, а она доступна через Aplication.Icon. Если надо получить иконку чужого окна, то тут немного сложнее. Исходя из задачи, как я понимаю, хэндл нужного окна у тебя уже должен быть. Тогда по хэндлу окна через GetWindowThreadProcessId получаем ID процесса, по ID процесса через GetModuleFileNameEx (см https://stackoverflow.com/questions/...d-using-delphi) получаешь путь к программе, ну а дальше вызываешь ExtractAssociatedIconW (см доку https://learn.microsoft.com/en-us/wi...ssociatediconw) для получения хэндла иконки. А далее делаешь что-то типа такого: Код:
var IconHndl : THandle; Icon : TIcon; begin IconHndl := GetIconHandleByWnd(WndHandle); Icon := TIcon.Create; Try Icon.Handle := IconHndl; Form1.Canvas.Draw(0,0,Icon); // Это просто для примера, вроде так... Finally Icon.Free; End; |