다음을 통해 공유


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 클래스 개체를 만듭니다.

글꼴 콤보 상자 단추는 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] 콤보 상자의 명령 ID입니다.

iImage
[in] 도구 모음 이미지의 인덱스(0부터 시작하는 인덱스)입니다. 이미지는 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 개체는 대신 해당 pLstFontsExternal 지점을 사용 가능한 글꼴로 채웁 CObList 니다.

예시

다음 예제에서는 개체를 생성하는 CMFCToolBarFontComboBox 방법을 보여 줍니다. 이 코드 조각은 워드 패드 샘플의 일부입니다.

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] 콤보 상자 항목의 인덱스(0부터 시작하는 인덱스)를 지정합니다.

Return Value

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에 글꼴 이름 또는 글꼴 접두사를 포함할지 여부를 지정합니다.

Return Value

글꼴이 성공적으로 선택된 경우 0이 아닌 경우 그렇지 않으면 0입니다.

설명

bExact가 TRUE이면 이 메서드는 lpszName으로 지정한 이름과 정확히 일치하는 글꼴을 선택합니다. bExact가 FALSE이면 이 메서드는 lpszName으로 지정된 텍스트로 시작하고 nCharSet으로 지정한 문자 집합을 사용하는 글꼴을 선택합니다. nCharSet이 DEFAULT_CHARSET 설정되면 문자 집합이 무시되고 lpszName글꼴을 선택하는 데 사용됩니다.

참고 항목

계층 구조 차트
클래스
CMFCToolBar 클래스
CMFCToolBarButton 클래스
CMFCToolBarComboBoxButton 클래스
CMFCFontInfo 클래스
CMFCToolBar::ReplaceButton
연습: 도구 모음에 컨트롤 배치