2010-12-16 68 views
1

我只是将游戏切换为使用WNDCLASSEX,因此我可以更改hIconSm,但由于某种原因,标题栏中没有图标。任务栏上的光标和图标以及EXE的图标都可以正常工作。下面是窗口创建代码的主要部分:从WNDCLASS切换到WNDCLASSEX后,在标题栏中没有图标

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

不会编译:

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

感谢编辑BTW。

编辑 - 明白了,改成编译:

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

@MJ:删除...对不起。 – sje397 2010-12-16 04:46:36

+0

我得到它的工作,但仍然没有图标。 :( – 2010-12-16 04:48:21

+0

它是否工作,如果你只是使用CreateWindow? – 2010-12-16 04:58:24

0

这是因为你的窗口风格。仅当您添加WS_SYSMENU样式时才会出现该图标。

WS_OVERLAPPED | WS_SYSMENU