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 :
Réservez un ID de ressource factice pour le bouton dans la ressource de la barre d'outils parente.
Construisez un
CMFCToolBarFontComboBox
objet.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.
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
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