Установить значок левого верхнего угла окна в wxMSW - PullRequest
1 голос
/ 28 июля 2011

Я работаю над проектом с wxWidgets (ветка 2.9).Я использую gcc и makefiles - большинство вопросов, которые я нашел в этой сделке с Visual Studio.

Проблема в том, что я создал значок с IcoFX, и он включает в себя несколько различных размеров значка, включая значки 16x16, которые должны отображаться в углу окна.Значок отображается на панели задач Windows 7, но не в углу окна или в меню Alt + Tab.

Мой файл ресурсов выглядит следующим образом:

#include "wx/msw/wx.rc"
1 ICON "images/icon-win.ico"

Что бы я ни указывал в качестве идентификатора иконки (пробовал 1, 0, строки, wx ***), он ничего не меняет.

Я использую windres для компиляции файла ресурсов в формате COFF, которыйзатем связаны с последним исполняемым файлом.

Я также попробовал wxFrame :: SetIcon, который тоже не работал.

Есть ли хитрость для установки иконки окна?Я видел несколько способов сделать это с использованием Windows API, но я бы предпочел не идти туда, если мне это не нужно.Я думал, что это должно появиться автоматически, когда вы поместите его в файл ресурсов.

Ответы [ 3 ]

2 голосов
/ 28 июля 2011

Добавьте эту строку в файл ресурсов:

frame_icon ICON "images/icon-win.ico"

Добавьте эту строку в конструктор фреймов

SetIcon(wxICON(frame_icon));
1 голос
/ 23 августа 2014

Попробуйте это

frame->SetIcon(wxIcon(wxT("icon.ico"), wxBITMAP_TYPE_ICO));

0 голосов
/ 28 июля 2011

Как вы обнаружили, размещение значка в файле ресурсов означает, что он отображается на панели задач и как значок исполняемого файла. Чтобы установить его как значок рамки, вам нужно сделать следующее:

frame->SetIcon(wxICON(1));
...