我只是将游戏切换为使用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尝试了几种不同的设置,希望也许我使用了没有图标但没有运气的样式。我现在正在使用默认图标进行测试。

最佳答案

不会编译:

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


谢谢你的编辑顺便说一句。

编辑-通过将其更改为以下内容进行编译:

    wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(32513));
wc.hIconSm = LoadIcon(hInstance, MAKEINTRESOURCE(32513));

09-08 05:30
查看更多