CMFCToolBarFontComboBox 類別
工具列按鈕,其中包含下拉式方塊控件,可讓使用者從系統字型清單中選取字型。
語法
class CMFCToolBarFontComboBox : public CMFCToolBarComboBoxButton
成員
受保護的建構函式
名稱 | 描述 |
---|---|
CMFCToolBarFontComboBox::CMFCToolBarFontComboBox | 建構 CMFCToolBarFontComboBox 物件。 |
公用方法
名稱 | 描述 |
---|---|
CMFCToolBarFontComboBox::GetFontDesc | 傳回下拉式方塊中指定索引之 物件的指標 CMFCFontInfo 。 |
CMFCToolBarFontComboBox::SetFont | 根據字型的名稱或字型的前置詞和字元集,選取字型下拉式方塊中的字型。 |
資料成員
CMFCToolBarFontComboBox::m_nFontHeight
字型下拉式方塊中的字元高度。
備註
若要將字型下拉式方塊按鈕新增至工具列,請遵循下列步驟:
為父工具列資源的按鈕保留假的資源 ID。
CMFCToolBarFontComboBox
建構物件。在處理AFX_WM_RESETTOOLBAR訊息的訊息處理程式中,使用 CMFCToolBar::ReplaceButton,將原始按鈕取代為新的下拉式方塊按鈕。
使用 CMFCToolBarFontComboBox::SetFont 方法,同步處理下拉式方塊中選取的字型與檔中的字型。
若要同步處理檔的字型與下拉式方塊中選取的字型,請使用 CMFCToolBarFontComboBox::GetFontDesc 方法來擷取所選字型的屬性,並使用這些屬性來建立 CFont Class 物件。
字型下拉式方塊按鈕會呼叫 Win32 函式 EnumFontFamiliesEx 來判斷系統可用的螢幕和印表機字型。
繼承階層架構
需求
標頭: 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
物件會改為以可用的字型填滿CObList
該 pLstFontsExternal 指向的 。
範例
下列範例示範如何建構 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
逐步解說:將控制項放在工具列上