theclem35 | Depuis que j'ai activé la prise en charge des styles xp pour mon appli utilisant l'api Win32, j'ai des beaux boutons en relief trop beaux Sauf que...
La police est toujours assez grosse et moche (dans les boutons, les combo, les static, bref partout..)
Il faut en fait charger la police système et l'appliquer à tous les controles.
J'ai trouvé le code sur certains forums, je n'ai aucune erreur de compilation mais ca ne fonctionne toujours pas....
Ce que j'ai (gros et moche) :
Ce que j'aimerai avoir (trop beau windows ) :
Ci dessous le code en question :
Code :
- /* Début du main, les classes etc.... */
- fenetrePrincipale = CreateWindow(
- "classeFenetrePrincipale", "Jeu",
- WS_VISIBLE | WS_SYSMENU | WS_MINIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT,
- 280, 350,
- NULL, NULL, cetteInstance, NULL);
- if (!fenetrePrincipale) return FALSE;
- fenetreHebergerPartie = CreateWindow(
- "classeFenetreHebergerPartie", "Heberger une partie ...",
- WS_SYSMENU | WS_MINIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT,
- 457, 340,
- fenetrePrincipale, NULL, cetteInstance, NULL);
- if (!fenetreHebergerPartie) return FALSE;
-
- GetWndFont(hGlobalFont);
- EnumChildWindows(fenetrePrincipale, setWndFont, 0);
- ShowWindow(fenetrePrincipale, SW_SHOW);
- UpdateWindow(fenetrePrincipale);
- while (GetMessage(&message, NULL, 0, 0))
- {
- TranslateMessage(&message);
- DispatchMessage(&message);
- }
- return message.wParam;
- } // Fin du main
- HFONT GetWndFont(HFONT hGlobalFont)
- {
- NONCLIENTMETRICS info;
- info.cbSize = sizeof(info);
- SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(info), &info, 0);
- hGlobalFont = CreateFontIndirect(&info.lfMessageFont);
- return hGlobalFont;
- }
- BOOL CALLBACK setWndFont(HWND itemHwnd, LPARAM lParam)
- {
- SendMessage(itemHwnd, WM_SETFONT, (WPARAM)hGlobalFont, MAKELPARAM(FALSE, 0));
- return TRUE;
- }
|
1/ Je cree mes deux fenetres
2/ Je recupere la police systeme -> GetWndFont()
3/ Je l'envoie a tous mes controles -> EnumChildWindows()
Je pense qu'il y a quelque chose qui n'est pas fait dans le bon ordre ou je sais pas! Message édité par theclem35 le 27-03-2011 à 00:38:59
|