Изменить значок окна приложения для приложения C ++ - PullRequest
0 голосов
/ 28 мая 2019

Так что у меня проблемы с установкой значка по умолчанию для графического окна приложения C ++.Я слежу за серией руководств по DirectX 11 (найдено здесь )

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

В соответствии с документацией Microsoft, найденной здесь , есть два свойства HICON, для которых я должен установить значения в WNDCLASSEX: hIcon и hIconSm;который, согласно исследованиям, можно установить с помощью LoadIcon(hInstance, IDI_APPLICATION), как показано в этом примере LoadIcon

Я не совсем уверен, какие шаги будут предприняты для воспроизведения этой проблемы.Я не знаю, если что-то пошло не так, когда я сделал .rc файл для загрузки в образе .ico.Или, если я загрузил изображение неправильно, или ... ну ... какая-то неясная причина, по которой оно будет работать только наполовину.

Это мой код для регистрации класса окна, который я использую для создания окна

// The window class. This has to be filled BEFORE the window can be WNDCLASSEX wc;
/ Flags [Redraw on width/height change from resize/movement]
wc.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
// Pointer to the window processing function for handling messages from this window
wc.lpfnWndProc = HandleMessageSetup;
// Number of extra bytes to allocate following the window-class structure
wc.cbClsExtra = 0;
// Number of extra bytes to allocate following the window instance
wc.cbWndExtra = 0;

// Handle to the instance that contains the window procedure
wc.hInstance = m_hInstance;
// Handle to the class icon. Must be a handle to an Icon resource
wc.hIcon =  LoadIcon(m_hInstance, IDI_APPLICATION);
// Handle to the small icon for the class
wc.hIconSm = LoadIcon(m_hInstance, IDI_APPLICATION);
// Handle to the class cursor. If null, an application must explicitly set the cursor shape whenever the mouse moves into the application window
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
// Handle to the class background brush for the window's background colour. When NULL an application must paint its own background colour
wc.hbrBackground = NULL;
// Pointer to a null-terminated string for the menu
wc.lpszMenuName = NULL;
// Pointer to null-terminated string of our class name
wc.lpszClassName = m_windowClass.c_str();
wc.cbSize = sizeof(WNDCLASSEX);

// Register the class to make it usable
RegisterClassEx(&wc);

Если требуется больше кода, мой репозиторий можно найти на github (основной класс, о котором идет речь - engine / RenderWindow)

Согласно исследованию, создание окна с использованиемCreateWindowEx должен тогда просто работать.значок панели задач меняется, но не значок окна приложения. Снимок экрана

Нет ошибок.Код компилируется и успешно выполняется.

...