2015-03-13 2 views
2

Обычно значок, принадлежащий панели задач приложения, является тем же самым значком, который содержится в EXE и показан для программы. Теперь в моем приложении я хочу изменить этот значок динамически, значит, считывается конфигурация, где указано изображение (PNG). Теперь приложение загружает это изображение и должно установить его как новый значок панели задач.Как установить значок панели задач Windows во время выполнения?

Но: как можно сделать последний шаг? Как установить значок на панели задач (не в лотке!) Во время выполнения?

Спасибо!

+0

См https://msdn.microsoft.com/en-us/magazine/dd942846.aspx –

+0

@MarkRansom: на панели задач API-интерфейсы не позволяют изменить значок кнопки на панели задач. Только окно, которому принадлежит кнопка, может указать свой собственный значок. –

ответ

4

Отправить сообщение WM_SETICON к окну, передавая размер (либо ICON_BIG или ICON_SMALL) в wParam и ручкой на новую иконку в lParam.

SendMessage(hwnd, WM_SETICON, ICON_SMALL, (LPARAM)hIcon); 
+0

Вам нужно использовать 'SendMessage()' вместо 'PostMessage()'. И вам не нужно вводить тип 'wParam', просто' lParam'. 'SendMessage (hwnd, WM_SETICON, ICON_SMALL, (LPARAM) hIcon);' –

+1

@Remy: Обновлен ответ соответственно. Спасибо за помощь. –

+0

Хорошо, это не работает для меня. Существуют ли особые условия для формата значка? Я пробовал его с 32x32, 64x64 и 128x128 пикселей, все 256 цветов. – Elmi