Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1474 connectés 

  FORUM HardWare.fr
  Programmation
  API Win32

  Chargement des styles Windows XP OK, mais polices moches

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Chargement des styles Windows XP OK, mais polices moches

n°2066273
theclem35
Posté le 27-03-2011 à 00:36:22  profilanswer
 

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  :ange:  
 
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) :
http://img714.imageshack.us/img714/2320/monappli.png
 
Ce que j'aimerai avoir (trop beau windows  :ange: ) :
http://img222.imageshack.us/img222/8273/winj.png
 
 
Ci dessous le code en question :

Code :
  1. /* Début du main, les classes etc.... */
  2.        fenetrePrincipale = CreateWindow(
  3.                             "classeFenetrePrincipale", "Jeu",
  4.                             WS_VISIBLE | WS_SYSMENU | WS_MINIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT,
  5.                             280, 350,
  6.                             NULL, NULL, cetteInstance, NULL);
  7.     if (!fenetrePrincipale) return FALSE;
  8.     fenetreHebergerPartie = CreateWindow(
  9.                                 "classeFenetreHebergerPartie", "Heberger une partie ...",
  10.                                 WS_SYSMENU | WS_MINIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT,
  11.                                 457, 340,
  12.                                 fenetrePrincipale, NULL, cetteInstance, NULL);
  13.     if (!fenetreHebergerPartie) return FALSE;
  14.    
  15.     GetWndFont(hGlobalFont);
  16.     EnumChildWindows(fenetrePrincipale, setWndFont, 0);
  17.     ShowWindow(fenetrePrincipale, SW_SHOW);
  18.     UpdateWindow(fenetrePrincipale);
  19.     while (GetMessage(&message, NULL, 0, 0))
  20.     {
  21.         TranslateMessage(&message);
  22.         DispatchMessage(&message);
  23.     }
  24.     return message.wParam;
  25. } // Fin du main
  26. HFONT GetWndFont(HFONT hGlobalFont)
  27. {
  28.         NONCLIENTMETRICS info;
  29.         info.cbSize = sizeof(info);
  30.         SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(info), &info, 0);
  31.         hGlobalFont = CreateFontIndirect(&info.lfMessageFont);
  32.         return hGlobalFont;
  33. }
  34. BOOL CALLBACK setWndFont(HWND itemHwnd, LPARAM lParam)
  35. {
  36.         SendMessage(itemHwnd, WM_SETFONT, (WPARAM)hGlobalFont, MAKELPARAM(FALSE, 0));
  37.         return TRUE;
  38. }


 
 
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
mood
Publicité
Posté le 27-03-2011 à 00:36:22  profilanswer
 

n°2066641
tpierron
Posté le 28-03-2011 à 22:21:58  profilanswer
 

Pour récupérer la police système c'est :

Code :
  1. HFONT GetWndFont(HFONT hGlobalFont)
  2. {
  3.    return GetStockObject(DEFAULT_GUI_FONT);
  4. }


 
Pas besoin de faire un DeleteObject sur la valeur de retour. Si tu veux adapter la police (genre garder la même taille, mais changer l'apparence comme gras/italic/souligné), utilise la fonction GetObject() + CreateFontIndirect().


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  API Win32

  Chargement des styles Windows XP OK, mais polices moches

 

Sujets relatifs
[batch]récupérer son IP (OK) et l'analyser (pas ok)Programmation Java/C sous Linux/Windows^^
Apache sur un Windows Server 2003 - Gestion des droitsCentrer DIV dans la fenetre (Chrome-FF : OK .:. IE7 : NOK)
compiler un programme linux pour le rendre executable sous windowslien api windows en langage C
perl et win32::api (fonctions windows)Chargement d'un script sur site dynamique
Pb chargement de ToolTips sur ListViewCréer des raccourcis Windows
Plus de sujets relatifs à : Chargement des styles Windows XP OK, mais polices moches


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR