Partager via


CMFCToolBarFontComboBox, classe

Bouton de barre d’outils qui contient un contrôle de zone de liste modifiable qui permet à l’utilisateur de sélectionner une police dans une liste de polices système.

Syntaxe

class CMFCToolBarFontComboBox : public CMFCToolBarComboBoxButton

Membres

Constructeurs protégés

Nom Description
CMFCToolBarFontComboBox ::CMFCToolBarFontComboBox Construit un objet CMFCToolBarFontComboBox.

Méthodes publiques

Nom Description
CMFCToolBarFontComboBox ::GetFontDesc Retourne un pointeur vers l’objet CMFCFontInfo pour un index spécifié dans la zone de liste déroulante.
CMFCToolBarFontComboBox ::SetFont Sélectionne une police dans la zone de liste modifiable de police en fonction du nom de la police, ou du préfixe et du jeu de caractères de la police.

Données membres

CMFCToolBarFontComboBox ::m_nFontHeight
Hauteur des caractères dans la zone de liste modifiable de police.

Notes

Pour ajouter un bouton de zone de liste déroulante de police à une barre d’outils, procédez comme suit :

  1. Réservez un ID de ressource factice pour le bouton dans la ressource de la barre d'outils parente.

  2. Construisez un CMFCToolBarFontComboBox objet.

  3. Dans le gestionnaire de messages qui traite le message AFX_WM_RESETTOOLBAR, remplacez le bouton d’origine par le nouveau bouton de zone de liste modifiable à l’aide de CMFCToolBar ::ReplaceButton.

  4. Synchronisez la police sélectionnée dans la zone de liste déroulante avec la police du document à l’aide de la méthode CMFCToolBarFontComboBox ::SetFont .

Pour synchroniser la police du document avec la police sélectionnée dans la zone de liste déroulante, utilisez la méthode CMFCToolBarFontComboBox ::GetFontDesc pour récupérer les attributs de la police sélectionnée et utilisez ces attributs pour créer un objet CFont Class .

Le bouton de zone de liste modifiable de police appelle la fonction Win32 EnumFontFamiliesEx pour déterminer les polices d’écran et d’imprimante disponibles pour le système.

Hiérarchie d'héritage

CObject

CMFCToolBarButton

CMFCToolBarComboBoxButton

CMFCToolBarFontComboBox

Spécifications

En-tête : afxtoolbarfontcombobox.h

CMFCToolBarFontComboBox ::CMFCToolBarFontComboBox

Construit un objet CMFCToolBarFontComboBox .

public:
CMFCToolBarFontComboBox(
    UINT uiID,
    int iImage,
    int nFontType = DEVICE_FONTTYPE | RASTER_FONTTYPE | TRUETYPE_FONTTYPE,
    BYTE nCharSet = DEFAULT_CHARSET,
    DWORD dwStyle = CBS_DROPDOWN,
    int iWidth = 0,
    BYTE nPitchAndFamily = DEFAULT_PITCH);

protected:
CMFCToolBarFontComboBox(
    CObList* pLstFontsExternal,
    int nFontType,
    BYTE nCharSet,
    BYTE nPitchAndFamily);

CMFCToolBarFontComboBox();

Paramètres

uiID
[in] ID de commande de la zone de liste déroulante.

iImage
[in] Index de base zéro d’une image de barre d’outils. L’image se trouve dans l’objet CMFCToolBarImages Class que la classe CMFCToolBar Class gère.

nFontType
[in] Types de polices que contient la zone de liste modifiable. Ce paramètre peut être une combinaison (OR booléenne) des valeurs suivantes :

DEVICE_FONTTYPE

RASTER_FONTTYPE

TRUETYPE_FONTTYPE

nCharSet
[in] Si la valeur est définie sur DEFAULT_CHARSET, la zone de liste déroulante contient toutes les polices nommées de manière unique dans tous les jeux de caractères. (S’il existe deux polices portant le même nom, la zone de liste déroulante contient l’une d’entre elles.) Si la valeur est définie sur un jeu de caractères valide, la zone de liste modifiable contient uniquement les polices du jeu de caractères spécifié. Consultez LOGFONT pour obtenir la liste des jeux de caractères possibles.

dwStyle
[in] Style de la zone de liste modifiable. (voir Styles de zone de liste modifiable)

iWidth
[in] Largeur en pixels du contrôle d’édition.

nPitchAndFamily
[in] Si la valeur est définie sur DEFAULT_PITCH, la zone de liste déroulante contient des polices indépendamment de l’emplacement. Si la valeur est FIXED_PITCH ou VARIABLE_PITCH, la zone de liste modifiable contient uniquement des polices avec ce type d’emplacement. Le filtrage basé sur la famille de polices n’est actuellement pas pris en charge.

pLstFontsExternal
[out] Pointeur vers un objet de classe CObList qui stocke les polices disponibles.

Notes

En règle générale, CMFCToolBarFontComboBox les objets stockent la liste des polices disponibles dans un seul objet partagé CObList . Si vous utilisez la deuxième surcharge du constructeur et fournissez un pointeur valide vers pLstFontsExternal, cet CMFCToolBarFontComboBox objet remplira à la place les CObList points pLstFontsExternal vers utilisant des polices disponibles.

Exemple

L’exemple suivant montre comment construire un CMFCToolBarFontComboBox objet. Cet extrait de code fait partie de l’ exemple Word Pad.

CMFCToolBarFontComboBox *CFormatBar::CreateFontComboButton()
{
   // CSize m_szBaseUnits
   return new CMFCToolBarFontComboBox(IDC_FONTNAME,
                                      GetCmdMgr()->GetCmdImage(IDC_FONTNAME, FALSE),
                                      TRUETYPE_FONTTYPE | DEVICE_FONTTYPE,
                                      DEFAULT_CHARSET,
                                      WS_VISIBLE | WS_TABSTOP | WS_VSCROLL | CBS_DROPDOWN |
                                          CBS_AUTOHSCROLL | CBS_HASSTRINGS | CBS_OWNERDRAWFIXED,
                                      (3 * LF_FACESIZE * m_szBaseUnits.cx) / 2);
}

CMFCToolBarFontComboBox ::GetFontDesc

Retourne un pointeur vers l’objet CMFCFontInfo pour un index spécifié dans la zone de liste déroulante.

const CMFCFontInfo* GetFontDesc(int iIndex=-1) const;

Paramètres

iIndex
[in] Spécifie l’index de base zéro d’un élément de zone de liste modifiable.

Valeur de retour

Pointeur vers un objet CMFCFontInfo. Si iIndex ne spécifie pas d’index d’élément valide, la valeur de retour est NULL.

CMFCToolBarFontComboBox ::m_nFontHeight

Spécifie la hauteur, en pixels, des caractères dans la zone de liste déroulante de police si la zone de liste modifiable possède un style de dessin propriétaire.

static int m_nFontHeight

Notes

Si la m_nFontHeight variable est 0, la hauteur est calculée automatiquement en fonction de la police par défaut de la zone de liste modifiable. La hauteur comprend à la fois l’ascension des caractères au-dessus de la ligne de base et la descente de caractères sous la ligne de base.

CMFCToolBarFontComboBox ::SetFont

Sélectionne la police dans la zone de liste modifiable de police en fonction du nom de police et du jeu de caractères spécifiés dans les paramètres.

BOOL SetFont(
    LPCTSTR lpszName,
    BYTE nCharSet=DEFAULT_CHARSET,
    BOOL bExact=FALSE);

Paramètres

lpszName
[in] Spécifie le nom ou le préfixe de police.

nCharSet
[in] Spécifie le jeu de caractères.

bExact
[in] Spécifie si lpszName contient le nom de police ou le préfixe de police.

Valeur de retour

Différent de zéro si la police a été sélectionnée avec succès ; sinon 0.

Notes

Si bExact a la valeur TRUE, cette méthode sélectionne une police qui correspond exactement au nom que vous avez spécifié en tant que lpszName. Si bExact a la valeur FALSE, cette méthode sélectionne une police qui commence par le texte spécifié en tant que lpszName et qui utilise le jeu de caractères que vous avez spécifié en tant que nCharSet. Si nCharSet est défini sur DEFAULT_CHARSET, le jeu de caractères est ignoré et seul lpszName sera utilisé pour sélectionner une police.

Voir aussi

Graphique hiérarchique
Classes
CMFCToolBar, classe
CMFCToolBarButton, classe
CMFCToolBarComboBoxButton, classe
CMFCFontInfo, classe
CMFCToolBar ::ReplaceButton
Procédure pas à pas : placement de contrôles dans les barres d’outils