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 :

[C] Combobox et font


Sujet :

Windows

  1. #1
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 31
    Points : 12
    Points
    12
    Par défaut [C] Combobox et font
    Bonjour,

    J'ai créé dans une application une toolbar avec choix de la police et de la taille. Pour la taille aucun souci : j'ai l'ai fixée à 14, et "14" est sélectionné à l'ouverture de l'application. Par contre pour la police, la police du texte est bien "Times New Roman" comme prévu à l'ouverture de l'application mais c'est la 1ère police de ma combobox qui est sélectionnée et non "Times New Roman". Comment faire pour que "Times New Roman" soit sélectionnée?

    Merci

  2. #2
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Avec le message CB_SETCURSEL ?
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  3. #3
    Membre à l'essai
    Inscrit en
    Août 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 31
    Points : 12
    Points
    12
    Par défaut
    Voilà ce que je fais:

    Dans WM_CREATE :
    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
    LOGFONT LogFont;
                HDC hdc = GetDC(hCombo1);
                LogFont.lfCharSet = DEFAULT_CHARSET;
                LogFont.lfFaceName[0] = (TCHAR)0;
                LogFont.lfPitchAndFamily = 0;
                EnumFontFamiliesEx(hdc,&LogFont,(FONTENUMPROC)EnumFontFamProc,(LPARAM)hCombo1,0);
                ReleaseDC(hCombo1, hdc);
                SendMessage(hCombo1, CB_SETCURSEL, 0, 0 );
    
    int nSel = 0;
                int nMax = sizeof(nHeight)/sizeof(int);
                int i;
                for (i = 0; i<nMax; i++)
                {
                    char bufsize[256];
                    int s = nHeight[i];
                    sprintf(bufsize, " %2d ", s);
                    SendMessage(hCombo2, CB_ADDSTRING, i, (LPARAM)bufsize);
                    if (-MulDiv(s, GetDeviceCaps(GetDC(hEdit), LOGPIXELSY), 72) == lf.lfHeight)
                          nSel = i;
                }
                SendMessage(hCombo2, CB_SETCURSEL, nSel, 0);
    et dans WM_COMMAND:
    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
    else if (HIWORD(wParam) == CBN_SELCHANGE)
                {
                           int t = SendMessage(htb, CB_GETCURSEL, 0, 0);
                           SendMessage(hCombo1, CB_GETLBTEXT, t, (LPARAM)lf.lfFaceName);
                           
                           SendMessage(hCombo2, WM_GETFONT, 0, 0);
                           
                           t = SendMessage(hCombo2, CB_GETCURSEL, 0, 0);
                           if (t != CB_ERR)
                           {
                                    int nMax = sizeof(nHeight)/sizeof(int);
                                    lf.lfHeight = -MulDiv(nHeight[t], GetDeviceCaps(GetDC(hEdit), LOGPIXELSY), 72); 
                           }
                           
                           DeleteObject(hFont);
                           hFont = CreateFontIndirect(&lf);
                           SendMessage(hEdit,WM_SETFONT,(UINT)hFont,TRUE);
                           
                }
    Sinon je ne sais pas comment faire pour que l'utilisateur puisse entrer une nouvelle taille de caractère.

    Merci

Discussions similaires

  1. Multi-selection dans une ComboBox ?
    Par Moloko dans le forum MFC
    Réponses: 5
    Dernier message: 07/07/2021, 17h26
  2. Réponses: 1
    Dernier message: 19/10/2011, 20h28
  3. [Débutant]combobox dont les valeur font apparaitre un tableau
    Par antoine2933 dans le forum Conception
    Réponses: 2
    Dernier message: 24/06/2011, 15h55
  4. Combobox avec couleur et font
    Par charaf dans le forum AWT/Swing
    Réponses: 16
    Dernier message: 27/06/2006, 20h12
  5. combobox->text
    Par clovis dans le forum C++Builder
    Réponses: 18
    Dernier message: 21/06/2002, 15h43

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