пользовательский интерфейс — Настройка значка окна в приложении Nana C ++ GUI

я использую Нана для создания графического интерфейса в моем приложении C ++, которое в основном работает нормально. Однако у меня проблемы с установкой значка окна под Windows:

nana::API::window_icon_default(nana::paint::image("hunger.ico"));

Определенно есть файл hunger.ico в той же папке, что и исполняемый файл, я дважды проверил это. Этот файл значка имеет размер 32×32 (или 16×16). Я также попытался получить полный путь к файлу иконки, например так:

wchar_t buffer[MAX_PATH];
DWORD len = sizeof(buffer);
GetModuleFileName(nullptr, buffer, len);
std::wstring ws(buffer);
// concatenate ws and "hunger.ico" here

Но когда я запускаю (консольное) приложение из VS2015, используется значок окна по умолчанию. Есть идеи, что мне здесь не хватает?

2

Решение

Этот звонок хорошо работает для меня. Значок появляется в строке заголовка окна приложения и на панели задач.

nana::API::window_icon(
myform.handle(),
nana::paint::image("myicon.ico"));

Вам нужно передать дескриптор формы заявки (почему? Не должен ли window_icon () принимать форму и извлекать дескриптор для себя?), А файл значков должен находиться в рабочей папке с различными необходимыми разрешениями

1

Другие решения

Я надеюсь, что Jinhao решит проблему с загрузкой иконки в работающую программу.

…но я не уверен, но если вы хотите, чтобы ваш файл .exe был даже в Windows Explorer, проиллюстрированном с помощью вашего ico / bmp, вам нужно будет включить его в .exe, и, вероятно, одна только nana не сможет сделай это. Я решил эту «проблему», добавив значок в качестве ресурса в проект VS: в обозревателе решений щелкните правой кнопкой мыши и добавьте … ресурс … выбирая значок, который может быть новым … который запускает значок редактор, из которого вы можете импортировать любой формат изображения на свой значок. Вам понадобится файл изображения только во время компиляции, а во время выполнения — нет.

0

По вопросам рекламы [email protected]