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:
Zarezervujte si pro tlačítko zástupný identifikátor ID prostředku v nadřazeném prostředku panelu nástrojů.
Vytvoření objektu
CMFCToolBarFontComboBox
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.
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
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ů