[API WIN32] Problème avec les polices [RESOLU]

Problème avec les polices [RESOLU] [API WIN32] - API Win32 - Programmation

Marsh Posté le 01-10-2008 à 13:12:04    

Bonjour,
 
Je suis entrain de programmer une application sous win 32 en natif. Mon problème est le suivant :
 
J'ai une fenêtre principale dans laquelle il y a des boutons et autre mais la police utilisée par défaut est bien plus grosse que la police utilisée dans les autres applications. En fait j'ai l'impression que mes boutons ont la même police que le champ "Texte de la fenêtre" dans  Propriétés d'affichage de Windows.  
 
merci pour vos réponses !


Message édité par sanglierquipue le 02-10-2008 à 10:42:12
Reply

Marsh Posté le 01-10-2008 à 13:12:04   

Reply

Marsh Posté le 01-10-2008 à 15:46:27    

En général pour récupérer la police kivabien (nom, taille, attributs, ...) pour les applications GUI tu utilises :
 

Code :
  1. HFONT font = (HFONT) GetStockObject(DEFAULT_GUI_FONT);


Reply

Marsh Posté le 01-10-2008 à 16:57:19    

Merci, j'ai donc essayé ceci :
 
 

Code :
  1. HFONT font=(HFONT)GetStockObject(DEFAULT_GUI_FONT);
  2.   SelectObject(GetDC(hWndPrincipale), font);


 
juste avant le  
 

Code :
  1. ShowWindow(hWndPrincipale, modeDAffichage);
  2. UpdateWindow(hWndPrincipale);


 
mais cela n'a rien changé.
 
Voici un aperçu avec à droite ma fenêtre et à gauche une fenêtre "normale"
 
http://www.zimagez.com/zimage/aa82.php


Message édité par sanglierquipue le 01-10-2008 à 16:59:09
Reply

Marsh Posté le 01-10-2008 à 19:50:07    

Hmm, je ne crois pas que c'est comme ça que tu changes la police des contrôles de ton application.
 
Quand je regarde mon code, je fait ça pour chaque contrôle créé :

Code :
  1. SendMessage(hwnd, WM_SETFONT, (WPARAM) font, FALSE);


Où :

  • hwnd : handle du contrôle ou du dialogue
  • font : le truc retourné par GetStockObject.


GetDC te retourne effectivement un device context, mais c'est pour y dessiner dedans (et tu dois le libérer).
 
Note : je ne suis pas sûr si c'est nécessaire de faire pour tous les contrôles, mais j'ai la flemme de faire qqs tests.

Reply

Marsh Posté le 02-10-2008 à 10:41:45    

Ok merci beaucoup ça fonctionne  :) , avec l'ajout de  
 

Code :
  1. EnumChildWindows(hWndPrincipale, EnumWindowsProc, FALSE);

pour parcourir toutes les widgets
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed