IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Discussion :

Petite police ...


Sujet :

Windows

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Par défaut Petite police ...
    Bonjour,

    J'essaie de mettre une police sur un controle static, mais je voudrais que ce soit la police utilisé dans les menus
    je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    case WM_CREATE:
                 RGBB=RGBBLUE;
                 font = GetStockObject(SYSTEM_FONT);
                 SendMessage(hwnd,WM_SETFONT, (WPARAM)font, MAKELONG(TRUE,0));
    			 SetWindowText(hwnd, "Texte à afficher ...");
     			 return 0;
    Et je récupère une police qui est plus grosse que celle des menus ...
    C'est "SYSTEM_FONT" qui n'est pas bon ?

    Merci d'avance.

  2. #2
    Membre éprouvé Avatar de ken_le_videur
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2002
    Messages : 129
    Par défaut
    Essaye avec DEFAULT_GUI_FONT

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Par défaut
    Citation Envoyé par ken_le_videur
    Essaye avec DEFAULT_GUI_FONT
    Apparament, c'est pareil ...

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 10
    Par défaut
    En fait, c'est GetStockObject qui n'est pas bon. Il faut utiliser SystemParametersInfo avec le flag SPI_GETNONCLIENTMETRICS, tu récupères ensuite la police que tu veux dans une structure NONCLIENTMETRICS initialisée par la fonction, et enfin tu crées ta police à partir de la structure (elle contient plusieurs membres, pour les menus c'est lfMenuFont) avec CreateFontIndirect et tu peux (enfin !) envoyer les WM_SETFONT

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Par défaut
    Bon, Nebula, j'ai fait comme tu as dit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
        switch (message) {
    		case WM_CREATE:
                 RGBB=RGBBLUE;
    //
    nct.cbSize = sizeof(NONCLIENTMETRICS);
    SystemParametersInfo(SPI_GETNONCLIENTMETRICS, sizeof(NONCLIENTMETRICS), &nct, 0);
    MessageBox(hwnd, nct.lfMenuFont.lfFaceName, "Programmation API Win32", MB_OK|MB_ICONINFORMATION);
    font=CreateFontIndirect(&nct.lfMenuFont);
    
    //             font = GetStockObject(DEFAULT_GUI_FONT);
                 SendMessage(hwnd,WM_SETFONT, (WPARAM)font, MAKELONG(TRUE,0));
    			 SetWindowText(hwnd, "... ma fenetre static ...");
     			 return 0;
    
            case WM_PAINT:
                 GetClientRect(hwnd,&rc);
                 GetWindowText(hwnd, szText, sizeof(szText));
                 hdc = BeginPaint(hwnd, &ps);
    		     SetTextColor(hdc,RGBB);
                 SetBkColor(hdc,GetSysColor(COLOR_BTNFACE));
                 DrawText(hdc,szText,strlen(szText),&rc,DT_CENTER);
                 EndPaint (hwnd, &ps);
                 return 0;
    Mais j'ai toujours pas la bonne police !
    Mon controle est une fenetre Static, et en fait j'essaie d'en changer le titre cela vient peut etre de là ?

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 10
    Par défaut
    Hm, hwnd correspond bien au handle de ton static ? Il t'affiche bien la bonne police avec ta MessageBox ?

    Sinon, moi j'appelle la fonction ainsi : SystemParametersInfo(SPI_GETNONCLIENTMETRICS, 0, &ncm, 0) vu que le deuxième paramètre ne sert à rien pour ce SPI... C'est la seule différence que j'ai trouvée avec mon code, qui fonctionne (chez moi)

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    528
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2003
    Messages : 528
    Par défaut
    Une chose interressante !
    Dans le WM_PAINT j'ai remplacé mon texte par celui de la police courrante et c'est "system" !!!
    alors que dans le WM_CREATE je fais bien un WM_SETFONT sur "Tahoma" ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    GetTextFace(hdc,sizeof(szText), szText);
    DrawText(hdc,szText,strlen(szText),&rc,DT_CENTER);

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Plus petite police possible
    Par sam01 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 08/09/2010, 12h00
  2. [CS3] toutes Petites polices afficheés dans Dream
    Par Décibel dans le forum Dreamweaver
    Réponses: 0
    Dernier message: 29/05/2008, 12h19
  3. Insérer une légende dans une image avec une police plus petite
    Par Paulinho dans le forum Tableaux - Graphiques - Images - Flottants
    Réponses: 3
    Dernier message: 29/04/2006, 14h19
  4. Réponses: 1
    Dernier message: 30/01/2006, 08h46
  5. Polices trop petites dans les applications X
    Par YéTeeh dans le forum Applications et environnements graphiques
    Réponses: 7
    Dernier message: 30/08/2005, 15h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo