分享方式:


CMFCToolBarFontComboBox 類別

工具列按鈕,其中包含下拉式方塊控件,可讓使用者從系統字型清單中選取字型。

語法

class CMFCToolBarFontComboBox : public CMFCToolBarComboBoxButton

成員

受保護的建構函式

名稱 描述
CMFCToolBarFontComboBox::CMFCToolBarFontComboBox 建構 CMFCToolBarFontComboBox 物件。

公用方法

名稱 描述
CMFCToolBarFontComboBox::GetFontDesc 傳回下拉式方塊中指定索引之 物件的指標 CMFCFontInfo
CMFCToolBarFontComboBox::SetFont 根據字型的名稱或字型的前置詞和字元集,選取字型下拉式方塊中的字型。

資料成員

CMFCToolBarFontComboBox::m_nFontHeight
字型下拉式方塊中的字元高度。

備註

若要將字型下拉式方塊按鈕新增至工具列,請遵循下列步驟:

  1. 為父工具列資源的按鈕保留假的資源 ID。

  2. CMFCToolBarFontComboBox建構物件。

  3. 在處理AFX_WM_RESETTOOLBAR訊息的訊息處理程式中,使用 CMFCToolBar::ReplaceButton,將原始按鈕取代為新的下拉式方塊按鈕。

  4. 使用 CMFCToolBarFontComboBox::SetFont 方法,同步處理下拉式方塊中選取的字型與檔中的字型。

若要同步處理檔的字型與下拉式方塊中選取的字型,請使用 CMFCToolBarFontComboBox::GetFontDesc 方法來擷取所選字型的屬性,並使用這些屬性來建立 CFont Class 物件。

字型下拉式方塊按鈕會呼叫 Win32 函式 EnumFontFamiliesEx 來判斷系統可用的螢幕和印表機字型。

繼承階層架構

CObject

CMFCToolBarButton

CMFCToolBarComboBoxButton

CMFCToolBarFontComboBox

需求

標頭: afxtoolbarfontcombobox.h

CMFCToolBarFontComboBox::CMFCToolBarFontComboBox

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

參數

uiID
[in]下拉式方塊的命令標識碼。

iImage
[in]工具欄影像以零起始的索引。 映像位於 CMFCToolBar 類別所維護的 CMFCToolBarImages 類別物件中。

nFontType
[in]下拉式方塊包含的字型類型。 此參數可以是下列值的組合(布爾值 OR):

DEVICE_FONTTYPE

RASTER_FONTTYPE

TRUETYPE_FONTTYPE

nCharSet
[in]如果設定為 DEFAULT_CHARSET,下拉式方塊會包含所有字元集中所有唯一命名的字型。 (如果有兩個字型具有相同的名稱,下拉式方塊會包含其中一個字型。如果設定為有效的字元集值,下拉式方塊只會包含指定字元集中的字型。 如需可能的字元集清單,請參閱 LOGFONT

dwStyle
[in]下拉式方塊的樣式。 (請參閱 下拉式方塊樣式

iWidth
[in]編輯控件的寬度,以像素為單位。

nPitchAndFamily
[in]如果設定為 DEFAULT_PITCH,則不論音調為何,下拉式方塊都會包含字型。 如果設定為 FIXED_PITCH 或 VARIABLE_PITCH,下拉式方塊只會包含具有該音調類型的字型。 目前不支持根據字型系列進行篩選。

pLstFontsExternal
[out] 儲存可用字型的 CObList 類別 物件的指標。

備註

物件通常會 CMFCToolBarFontComboBox 將可用字型清單儲存在單一共享 CObList 物件中。 如果您使用建構函式的第二個多載,並提供 pLstFontsExternal 的有效指標,該CMFCToolBarFontComboBox物件會改為以可用的字型填滿CObListpLstFontsExternal 指向的 。

範例

下列範例示範如何建構 CMFCToolBarFontComboBox 物件。 此程式碼片段是 WordPad 範例的一部分。

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

傳回下拉式方塊中指定索引之 物件的指標 CMFCFontInfo

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

參數

iIndex
[in]指定下拉式方塊專案的以零起始的索引。

傳回值

CMFCFontInfo 物件的指標。 如果 iIndex 未指定有效的專案索引,則傳回值為 NULL。

CMFCToolBarFontComboBox::m_nFontHeight

如果下拉式方塊具有擁有者繪製樣式,則指定字型下拉式方塊中的字元高度,以像素為單位。

static int m_nFontHeight

備註

m_nFontHeight如果變數為 0,則會根據下拉式方塊的預設字型自動計算高度。 高度包括基準上方的字元上升,以及基準底下字元的下降。

CMFCToolBarFontComboBox::SetFont

根據參數中指定的字型名稱和字元集,選取字型下拉式方塊中的字型。

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

參數

lpszName
[in]指定字型名稱或前置詞。

nCharSet
[in]指定字元集。

bExact
[in]指定 lpszName 是否包含字型名稱或字型前置詞。

傳回值

如果已成功選取字型,則為非零;否則為 0。

備註

如果 bExact 為 TRUE,這個方法會選取完全符合您指定為 lpszName 之名稱的字型。 如果 bExact 為 FALSE,此方法會選取以指定為 lpszName 之文字開頭的字型,並使用您指定為 nCharSet 的字元集。 如果 nCharSet 設定為 DEFAULT_CHARSET,則會忽略字元集,而且只會 使用 lpszName 來選取字型。

另請參閱

階層架構圖表
類別
CMFCToolBar 類別
CMFCToolBarButton 類別
CMFCToolBarComboBoxButton 類別
CMFCFontInfo 類別
CMFCToolBar::ReplaceButton
逐步解說:將控制項放在工具列上