Значок строки заголовка Windows - PullRequest
0 голосов
/ 23 мая 2019

У меня проблема с установкой иконки заголовка для моего приложения.

Я пытался выяснить это, поискать в Google, что не так, уже 2 дня, но безуспешно.

MainWindow.cpp:

#include "../../res/Icons.h"

void MainWindow::Create(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow)
{
    const wchar_t CLASS_NAME[]  = L"MainWindow";
    WNDCLASSEX wc = {};
    wc.cbSize = sizeof(wc);
    wc.lpfnWndProc = WindowProc;
    wc.hInstance = hInstance;
    wc.lpszClassName = CLASS_NAME;
    wc.hIcon = LoadIcon(NULL,IDI_MYICON);
    wc.hIconSm = LoadIcon(NULL,IDI_MYICON);
    wc.hCursor = LoadCursor(NULL, IDC_ARROW);
    wc.hbrBackground = CreateSolidBrush(RGB(255,255,255));
    RegisterClassEx(&wc);

    HWND hwnd = CreateWindowEx(0, CLASS_NAME, wstring(Language::wText[1].begin(),Language::wText[1].end()).c_str(), WS_SYSMENU | WS_CAPTION | WS_MINIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT, 640, 480, NULL, NULL, hInstance, NULL);
    ShowWindow(hwnd, nCmdShow);

    MSG msg = {};
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMessage(&msg);
        DispatchMessage(&msg);
    }
}

Icons.h

#define IDI_MYICON 1000

Icons.rc

IDI_MYICON ICON "App.ico"

Хорошо компилируется, и значок отображается на панели задач, а также в исполняемом файле, но не в заголовке.Значок является стандартным ico с размерами 32x32.Я даже пытался использовать LoadImage(), но тот же результат.

image

Ответы [ 2 ]

1 голос
/ 23 мая 2019

Вы передаете NULL на LoadIcon, вам нужно передать HINSTANCE вашего приложения для загрузки из ваших собственных ресурсов.

0 голосов
/ 24 мая 2019

Файл заголовка ресурса необходимо использовать вместе с файлом .rc (т. Е. #include "icon. h" в значке .rc), в противном случае конкретный файл значков (путь указан в файле .rc) не будет найден. Кроме того, если «icon.h» не заканчивается пустой строкой, вы получите неожиданный конец найденного файла ошибка.

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