я использую Нана для создания графического интерфейса в моем приложении 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, используется значок окна по умолчанию. Есть идеи, что мне здесь не хватает?
Этот звонок хорошо работает для меня. Значок появляется в строке заголовка окна приложения и на панели задач.
nana::API::window_icon(
myform.handle(),
nana::paint::image("myicon.ico"));
Вам нужно передать дескриптор формы заявки (почему? Не должен ли window_icon () принимать форму и извлекать дескриптор для себя?), А файл значков должен находиться в рабочей папке с различными необходимыми разрешениями
Я надеюсь, что Jinhao решит проблему с загрузкой иконки в работающую программу.
…но я не уверен, но если вы хотите, чтобы ваш файл .exe был даже в Windows Explorer, проиллюстрированном с помощью вашего ico / bmp, вам нужно будет включить его в .exe, и, вероятно, одна только nana не сможет сделай это. Я решил эту «проблему», добавив значок в качестве ресурса в проект VS: в обозревателе решений щелкните правой кнопкой мыши и добавьте … ресурс … выбирая значок, который может быть новым … который запускает значок редактор, из которого вы можете импортировать любой формат изображения на свой значок. Вам понадобится файл изображения только во время компиляции, а во время выполнения — нет.