我刚刚将游戏切换为使用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尝试了一些不同的设置,希望我可能使用没有图标的样式,但没有运气。我现在正在使用默认图标进行测试。
答案 0 :(得分:0)
不会编译:
error: cast from 'CHAR*' to 'WORD' loses precision
感谢编辑btw。
编辑 - 通过将其更改为:
来编译 wc.hIcon = LoadIcon(hInstance, MAKEINTRESOURCE(32513));
wc.hIconSm = LoadIcon(hInstance, MAKEINTRESOURCE(32513));
答案 1 :(得分:0)
这是因为你的窗户风格。仅当您添加WS_SYSMENU样式时才会显示该图标。
WS_OVERLAPPED | WS_SYSMENU