CMFCToolBarFontComboBox-Klasse

Eine Symbolleistenschaltfläche mit einem Kombinationsfeld-Steuerelement, mit dem der Benutzer eine Schriftart aus einer Liste von Systemschriftarten auswählen kann.

Syntax

class CMFCToolBarFontComboBox : public CMFCToolBarComboBoxButton

Member

Geschützte Konstruktoren

Name Beschreibung
CMFCToolBarFontComboBox::CMFCToolBarFontComboBox Erstellt ein CMFCToolBarFontComboBox-Objekt.

Öffentliche Methoden

Name Beschreibung
CMFCToolBarFontComboBox::GetFontDesc Gibt einen Zeiger auf das CMFCFontInfo Objekt für einen angegebenen Index im Kombinationsfeld zurück.
CMFCToolBarFontComboBox::SetFont Wählt eine Schriftart im Kombinationsfeld "Schriftart" entsprechend dem Namen der Schriftart oder dem Präfix- und Zeichensatz der Schriftart aus.

Datenelemente

CMFCToolBarFontComboBox::m_nFontHeight
Die Höhe der Zeichen im Kombinationsfeld "Schriftart".

Hinweise

Führen Sie die folgenden Schritte aus, um eine Schaltfläche für ein Kombinationsfeld für Schriftarten zu einer Symbolleiste hinzuzufügen:

  1. Reservieren Sie eine Platzhalterressourcen-ID für die Schaltfläche in der übergeordneten Symbolleistenressource.

  2. Konstruieren Sie ein CMFCToolBarFontComboBox-Objekt.

  3. Ersetzen Sie im Nachrichtenhandler, der die AFX_WM_RESETTOOLBAR Nachricht verarbeitet, die ursprüngliche Schaltfläche durch die neue Kombinationsfeldschaltfläche mithilfe von CMFCToolBar::ReplaceButton.

  4. Synchronisieren Sie die im Kombinationsfeld ausgewählte Schriftart mit der Schriftart im Dokument mithilfe der CMFCToolBarFontComboBox::SetFont-Methode .

Um die Schriftart des Dokuments mit der im Kombinationsfeld ausgewählten Schriftart zu synchronisieren, verwenden Sie die CMFCToolBarFontComboBox::GetFontDesc-Methode , um die Attribute der ausgewählten Schriftart abzurufen, und verwenden Sie diese Attribute, um ein CFont Class-Objekt zu erstellen.

Die Schaltfläche für das Kombinationsfeld "Schriftart" ruft die Win32-Funktion EnumFontFamiliesEx auf, um die für das System verfügbaren Bildschirm- und Druckerschriftarten zu bestimmen.

Vererbungshierarchie

CObject

CMFCToolBarButton

CMFCToolBarComboBoxButton

CMFCToolBarFontComboBox

Anforderungen

Header: afxtoolbarfontcombobox.h

CMFCToolBarFontComboBox::CMFCToolBarFontComboBox

Erstellt ein CMFCToolBarFontComboBox -Objekt.

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();

Parameter

uiID
[in] Die Befehls-ID des Kombinationsfelds.

iImage
[in] Der nullbasierte Index eines Symbolleistenbilds. Das Bild befindet sich im CMFCToolBarImages-Klassenobjekt , das von der CMFCToolBar-Klasse verwaltet wird.

nFontType
[in] Die Typen von Schriftarten, die das Kombinationsfeld enthält. Dieser Parameter kann eine Kombination (boolescher ODER) der folgenden Werte sein:

DEVICE_FONTTYPE

RASTER_FONTTYPE

TRUETYPE_FONTTYPE

nCharSet
[in] Bei Festlegung auf DEFAULT_CHARSET enthält das Kombinationsfeld alle eindeutig benannten Schriftarten in allen Zeichensätzen. (Wenn zwei Schriftarten mit demselben Namen vorhanden sind, enthält das Kombinationsfeld eines davon.) Wenn dieser Wert auf einen gültigen Zeichensatzwert festgelegt ist, enthält das Kombinationsfeld nur Schriftarten im angegebenen Zeichensatz. Eine Auflistung möglicher Zeichensätze finden Sie unter LOGFONT .

dwStyle
[in] Die Formatvorlage des Kombinationsfelds. (siehe Kombinationsfeld-Formatvorlagen)

iWidth
[in] Die Breite in Pixeln des Bearbeitungssteuerelements.

nPitchAndFamily
[in] Wenn dieser Wert auf DEFAULT_PITCH festgelegt ist, enthält das Kombinationsfeld Schriftarten unabhängig von der Neigung. Wenn dieser Wert auf FIXED_PITCH oder VARIABLE_PITCH festgelegt ist, enthält das Kombinationsfeld nur Schriftarten mit diesem Neigungstyp. Das Filtern basierend auf der Schriftartfamilie wird derzeit nicht unterstützt.

pLstFontsExternal
[out] Zeigen Sie auf ein CObList Class -Objekt, das die verfügbaren Schriftarten speichert.

Hinweise

CMFCToolBarFontComboBox In der Regel speichern Objekte die Liste der verfügbaren Schriftarten in einem einzigen freigegebenen CObList Objekt. Wenn Sie die zweite Überladung des Konstruktors verwenden und einen gültigen Zeiger auf pLstFontsExternal bereitstellen, füllt dieses CMFCToolBarFontComboBox Objekt stattdessen das CObList pLstFontsExternal mit verfügbaren Schriftarten.

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie ein CMFCToolBarFontComboBox Objekt erstellt wird. Dieser Codeausschnitt ist Teil des WordPad-Beispiels.

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

Gibt einen Zeiger auf das CMFCFontInfo Objekt für einen angegebenen Index im Kombinationsfeld zurück.

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

Parameter

iIndex
[in] Gibt den nullbasierten Index eines Kombinationsfeldelements an.

Rückgabewert

Ein Zeiger auf ein CMFCFontInfo-Objekt. Wenn iIndex keinen gültigen Elementindex angibt, ist der Rückgabewert NULL.

CMFCToolBarFontComboBox::m_nFontHeight

Gibt die Höhe von Zeichen im Kombinationsfeld "Schriftart" in Pixel an, wenn das Kombinationsfeld den Zeichenstil "Besitzer" aufweist.

static int m_nFontHeight

Hinweise

Wenn die m_nFontHeight Variable 0 ist, wird die Höhe automatisch entsprechend der Standardschriftart des Kombinationsfelds berechnet. Die Höhe enthält sowohl den Aufstieg von Zeichen über dem Basisplan als auch den Abstieg von Zeichen unterhalb der Basislinie.

CMFCToolBarFontComboBox::SetFont

Wählt die Schriftart im Kombinationsfeld "Schriftart" entsprechend dem In den Parametern angegebenen Schriftartnamen und Zeichensatz aus.

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

Parameter

lpszName
[in] Gibt den Schriftartnamen oder das Präfix an.

nCharSet
[in] Gibt den Zeichensatz an.

bExact
[in] Gibt an, ob lpszName den Schriftartnamen oder das Schriftartpräfix enthält.

Rückgabewert

Nonzero, wenn die Schriftart erfolgreich ausgewählt wurde; andernfalls 0.

Hinweise

Wenn bExact TRUE ist, wählt diese Methode eine Schriftart aus, die exakt mit dem Namen übereinstimmt, den Sie als lpszName angegeben haben. Wenn bExact FALSCH ist, wählt diese Methode eine Schriftart aus, die mit dem text beginnt, der als lpszName angegeben ist und den Zeichensatz verwendet, den Sie als nCharSet angegeben haben. Wenn nCharSet auf DEFAULT_CHARSET festgelegt ist, wird der Zeichensatz ignoriert, und nur lpszName wird verwendet, um eine Schriftart auszuwählen.

Siehe auch

Hierarchiediagramm
Klassen
CMFCToolBar-Klasse
CMFCToolBarButton-Klasse
CMFCToolBarComboBoxButton-Klasse
CMFCFontInfo-Klasse
CMFCToolBar::ReplaceButton
Exemplarische Vorgehensweise: Steuerelemente in eine Symbolleiste einfügen