2010-12-16 159 views
1

Je viens de changer le jeu pour utiliser WNDCLASSEX afin que je puisse changer le hIconSm, mais pour une raison quelconque, il n'y a plus d'icône dans la barre de titre. Le curseur et l'icône sur la barre des tâches et l'icône pour le EXE fonctionnent bien cependant. Voici la partie principale du code de création de fenêtre:Aucune icône dans la barre de titre après le passage de 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); 

J'ai essayé quelques réglages différents pour CreateWindowEx dans l'espoir que peut-être que j'ai utilisé un style sans icône, mais pas de chance. J'utilise des icônes par défaut en ce moment pour tester.

Répondre

0

ne compilera pas:

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

Merci pour l'édition btw.

Edition - Got à compiler en changeant à:

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

@MJ: supprimé ... désolé. – sje397

+0

Je l'ai eu à travailler mais toujours pas d'icône. :( –

+0

Cela fonctionne-t-il si vous utilisez simplement CreateWindow? –

0

Il est à cause de votre style de fenêtre. L'icône n'apparaît que si vous ajoutez le style WS_SYSMENU.

WS_OVERLAPPED | WS_SYSMENU