2010-12-16 55 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