Нет значка в строке заголовка после переключения с WNDCLASS на WNDCLASSEX - PullRequest
1 голос
/ 16 декабря 2010

Я просто переключил игру на использование WNDCLASSEX, чтобы я мог изменить hIconSm, но по какой-то причине в строке заголовка больше нет значка. Курсор и значок на панели задач и значок для EXE все работают нормально, хотя. Вот основная часть кода создания окна:

 WNDCLASSEX wc;

 wc.cbSize = sizeof(WNDCLASSEX);
 wc.cbClsExtra = 0;
 wc.cbWndExtra = 0;
 wc.style = CS_HREDRAW | CS_VREDRAW;
 wc.lpfnWndProc = WinProc;
 wc.hInstance = hInstance;
 wc.hIcon = LoadIcon(NULL, IDI_ERROR);
 wc.hIconSm = LoadIcon(NULL, IDI_ASTERISK);
 wc.hCursor = LoadCursorFromFile((LPCSTR)"FierceCursor.cur");
 wc.hbrBackground = (HBRUSH) (COLOR_WINDOW+1);
 wc.lpszClassName = "FierceWindow";

 RegisterClassEx(&wc);

 game->hinstance = hInstance;

 hWnd = CreateWindowEx(WS_EX_CLIENTEDGE,
                          "FierceWindow", "Fierce",
                          WS_OVERLAPPED, 400, 100,
                          game->SCREEN_WIDTH, game->SCREEN_HEIGHT,
                          NULL, NULL, hInstance, NULL);

Я пробовал несколько разных настроек для CreateWindowEx в надежде, что, возможно, я использовал стиль без иконки, но не повезло. Я сейчас использую значки по умолчанию для тестирования.

Ответы [ 2 ]

0 голосов
/ 16 декабря 2010

Это из-за вашего стиля окна.Значок появляется, только если вы добавляете стиль WS_SYSMENU.

WS_OVERLAPPED | WS_SYSMENU

0 голосов
/ 16 декабря 2010

Не будет компилироваться:

error: cast from 'CHAR*' to 'WORD' loses precision

Спасибо за редактирование.

Редактировать - Получите его для компиляции, изменив его на:

    wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(32513));
wc.hIconSm = LoadIcon(hInstance, MAKEINTRESOURCE(32513));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...