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

MFC Discussion :

[MFC] Mettre une fonte par défaut.


Sujet :

MFC

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 150
    Points : 111
    Points
    111
    Par défaut [MFC] Mettre une fonte par défaut.
    Bonjour,

    J'ai une application SDI avec une Mainframe qui contient un CWndSplitter qui lui contient contient une CFormView et un autre CWndSplitter qui contient d'autre CFormView.

    J'aimerai savoir s'il est possible de definir la police par défaut d'une application SDI une fois et ne pas avoir à la redefinir dans tous les controles des CFormView car là je suis obligé de definir la fonte pour chaque controle individuellement, ce que je n'ai pas l'intention de faire...

    J'ai tenté de definir ma police dans ma CMainFrame, mais ca ne fonctionne pas car GetFont() me renvoie NULL et les contrôles ont toujours la police par défaut :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
    	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
    		return -1;
     
    	LOGFONT lf;
        memset(&lf, 0, sizeof(LOGFONT));     
        lf.lfHeight = 16;           
        strcpy_s(lf.lfFaceName, LF_FACESIZE, "Microsoft sans serif");
        HFONT hfont = ::CreateFontIndirect(&lf); 
    	CFont * theFont = CFont::FromHandle(hfont);
    	this->SetFont(theFont);
    	ASSERT(GetFont() != NULL);//throw ASSERTION

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    150
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 150
    Points : 111
    Points
    111
    Par défaut
    J'ai trouvé une solution :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
    {
    	if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
    		return -1;
     
            LOGFONT lf;
            memset(&lf, 0, sizeof(LOGFONT));     
            lf.lfHeight = 16;           
            strcpy_s(lf.lfFaceName, LF_FACESIZE, "Microsoft sans serif");
            HFONT hfont = ::CreateFontIndirect(&lf); 
            SendMessageToDescendants( WM_SETFONT, (WPARAM)hfont);
    Mais ce que je ne comprends pas, c'est pourquoi lorsque je fais un SetFont() sur ma mainframe, j'ai un GetFont() qui retourne NULL juste après.

Discussions similaires

  1. Mettre une valeur par défaut dans un input type='file'
    Par fab76000 dans le forum Langage
    Réponses: 2
    Dernier message: 27/01/2009, 20h59
  2. Réponses: 10
    Dernier message: 04/11/2008, 15h30
  3. Réponses: 4
    Dernier message: 05/06/2007, 10h16
  4. Mettre une imprimante par défaut
    Par Amine78 dans le forum C++
    Réponses: 7
    Dernier message: 18/04/2007, 12h17
  5. mettre une valeur par défaut
    Par oolon dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 05/12/2006, 18h20

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