Динамическое изменение значка программы - PullRequest
1 голос
/ 13 июня 2011

В C ++ есть ли способ позволить пользователю выбрать значок приложения?Например, Winamp позволяет выбрать значок, который вы хотите использовать, из списка значков в его настройках.Как это сделать?

Ответы [ 2 ]

5 голосов
/ 13 июня 2011

Есть значок, который вы видите в проводнике. Это ресурс в вашем исполняемом файле. Вы можете изменить это, но я бы тоже не советовал. Вирусные сканеры могут нервничать, если исполняемые файлы изменены, а в Windows Vista вам даже не разрешат писать в папку Program Files.

Но значок, отображаемый на панели задач или на панели задач, можно изменить. На самом деле это значок окна вашего приложения, и его можно установить, отправив сообщение WM_SETICON.

И есть ярлыки. Их тоже можно изменить, и в ярлыке вы можете указать, какой значок следует использовать.

Я нашел обсуждение об изменении значков , в котором содержится информация о первых двух параметрах.

1 голос
/ 13 июня 2011

Для Visual Studio 2010 в приложении на основе диалогового окна MFC

A. В представлении ресурсов щелкните правой кнопкой мыши значок папки и добавьте значок. Дайте ему идентификатор, такой как IDI_MYICON. Оставьте все как есть или нарисуйте что-нибудь приятное.

B. Перейти к OnInitDialog. Добавьте следующие две строки кода:

HICON hMyIcon = LoadIcon( AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_MYICON) );
SetIcon( hMyIcon, FALSE ); // FALSE == use as small icon

Вы можете прочитать об этих функциях в справке, чтобы понять, что происходит.

Устанавливает значок как значок для системного меню (topleft) и на панели задач. Это, однако, не отражается автоматически во всех ситуациях. Например. для иконки в системном окне вам необходимо явно указать значок снова при вызове Shell_NotifyIcon ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...