我只是将游戏切换为使用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));