Sdílet prostřednictvím


CMFCToolBarFontComboBox – třída

Tlačítko panelu nástrojů, které obsahuje ovládací prvek pole se seznamem, který uživateli umožňuje vybrat písmo ze seznamu systémových písem.

Syntaxe

class CMFCToolBarFontComboBox : public CMFCToolBarComboBoxButton

Členové

Chráněné konstruktory

Název Popis
CMFCToolBarFontComboBox::CMFCToolBarFontComboBox CMFCToolBarFontComboBox Vytvoří objekt.

Veřejné metody

Název Popis
CMFCToolBarFontComboBox::GetFontDesc Vrátí ukazatel na CMFCFontInfo objekt pro zadaný index v poli se seznamem.
CMFCToolBarFontComboBox::SetFont Vybere písmo v poli se seznamem písma podle názvu písma nebo předpony a znakové sady písma.

Datové členy

CMFCToolBarFontComboBox::m_nFontHeight
Výška znaků v poli se seznamem písma

Poznámky

Chcete-li přidat tlačítko pole se seznamem písma na panel nástrojů, postupujte takto:

  1. Zarezervujte si pro tlačítko zástupný identifikátor ID prostředku v nadřazeném prostředku panelu nástrojů.

  2. Vytvoření objektu CMFCToolBarFontComboBox

  3. V obslužné rutině zprávy, která zpracovává AFX_WM_RESETTOOLBAR zprávu, nahraďte původní tlačítko novým tlačítkem pole se seznamem pomocí CMFCToolBar::ReplaceButton.

  4. Synchronizujte písmo vybrané v poli se seznamem s písmem v dokumentu pomocí metody CMFCToolBarFontComboBox::SetFont .

Pokud chcete synchronizovat písmo dokumentu s písmem vybraným v poli se seznamem, použijte metodu CMFCToolBarFontComboBox::GetFontDesc k načtení atributů vybraného písma a pomocí těchto atributů vytvořte objekt CFont Class .

Tlačítko pole se seznamem písma volá funkci Win32 EnumFontFamiliesEx k určení písma obrazovky a tiskárny dostupné pro systém.

Hierarchie dědičnosti

Objekt CObject

CMFCToolBarButton

CMFCToolBarComboBoxButton

CMFCToolBarFontComboBox

Požadavky

Hlavička: afxtoolbarfontcombobox.h

CMFCToolBarFontComboBox::CMFCToolBarFontComboBox

Vytvoří CMFCToolBarFontComboBox objektu.

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

Parametry

UIID
[v] ID příkazu pole se seznamem.

iImage
[v] Index panelu nástrojů založený na nule. Obrázek je umístěn v CMFCToolBarImages Class objekt, který CMFCToolBar Třída třídy udržuje.

nFontType
[v] Typy písem, která pole se seznamem obsahuje. Tento parametr může být kombinací (boolean OR) následujících hodnot:

DEVICE_FONTTYPE

RASTER_FONTTYPE

TRUETYPE_FONTTYPE

nCharSet
[v] Pokud je nastavená na DEFAULT_CHARSET, pole se seznamem obsahuje všechna jedinečně pojmenovaná písma ve všech znakových sadách. (Pokud existují dvě písma se stejným názvem, pole se seznamem obsahuje jedno z nich.) Pokud je nastavena na platnou hodnotu znakové sady, pole se seznamem obsahuje pouze písma v zadané znakové sadě. Seznam možných znakových sad najdete v LOGFONT .

dwStyle
[v] Styl pole se seznamem (viz Styly pole se seznamem)

iWidth
[v] Šířka v pixelech ovládacího prvku pro úpravy.

nPitchAndFamily
[v] Pokud je nastavená hodnota DEFAULT_PITCH, pole se seznamem obsahuje písma bez ohledu na výšku. Pokud je nastavená hodnota FIXED_PITCH nebo VARIABLE_PITCH, pole se seznamem obsahuje pouze písma s tímto typem rozteče. Filtrování na základě rodiny písem se v současné době nepodporuje.

pLstFontsExternal
[ven] Ukazatel na objekt CObList Class , který ukládá dostupná písma.

Poznámky

CMFCToolBarFontComboBox Objekty obvykle ukládají seznam dostupných písem do jednoho sdíleného CObList objektu. Pokud použijete druhé přetížení konstruktoru a poskytnete platný ukazatel na pLstFontsExternal, tento CMFCToolBarFontComboBox objekt místo toho vyplní CObList tento pLstFontsExternal body na dostupné písma.

Příklad

Následující příklad ukazuje, jak sestavit CMFCToolBarFontComboBox objekt. Tento fragment kódu je součástí ukázky wordové oblasti.

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

Vrátí ukazatel na CMFCFontInfo objekt pro zadaný index v poli se seznamem.

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

Parametry

iIndex
[v] Určuje index pole se seznamem založený na nule.

Návratová hodnota

Ukazatel na CMFCFontInfo objekt. Pokud index iIndex neurčí platný index položky, je vrácená hodnota NULL.

CMFCToolBarFontComboBox::m_nFontHeight

Určuje výšku znaků v pixelech v poli se seznamem písma, pokud má pole se seznamem styl kreslení vlastníka.

static int m_nFontHeight

Poznámky

m_nFontHeight Pokud je proměnná 0, vypočítá se výška automaticky podle výchozího písma pole se seznamem. Výška zahrnuje jak ascent znaků nad směrným plánem, tak sestup znaků pod směrným plánem.

CMFCToolBarFontComboBox::SetFont

Vybere písmo v poli se seznamem písmo podle názvu písma a znakové sady zadané v parametrech.

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

Parametry

lpszName
[v] Určuje název písma nebo předponu.

nCharSet
[v] Určuje znakové sady.

bExact
[v] Určuje, zda lpszName obsahuje název písma nebo předponu písma.

Návratová hodnota

Nenulové, pokud bylo písmo úspěšně vybráno; jinak 0.

Poznámky

Pokud bExact je PRAVDA, tato metoda vybere písmo, které přesně odpovídá názvu, který jste zadali jako lpszName. Pokud bExact je FALSE, tato metoda vybere písmo, které začíná textem zadaným jako lpszName a používá znakovou sadu, kterou jste zadali jako nCharSet. Pokud je nCharSet nastavena na DEFAULT_CHARSET, znaková sada bude ignorována a k výběru písma se použije pouze lpszName .

Viz také

Graf hierarchie
Třídy
CMFCToolBar – třída
CMFCToolBarButton – třída
CMFCToolBarComboBoxButton – třída
CMFCFontInfo – třída
CMFCToolBar::ReplaceButton
Návod: Umístění ovládacích prvků na panely nástrojů