Udostępnij za pośrednictwem


Klasa CMFCToolBarFontComboBox

Przycisk paska narzędzi zawierający kontrolkę pola kombi, która umożliwia użytkownikowi wybranie czcionki z listy czcionek systemowych.

Składnia

class CMFCToolBarFontComboBox : public CMFCToolBarComboBoxButton

Elementy członkowskie

Konstruktory chronione

Nazwa/nazwisko opis
CMFCToolBarFontComboBox::CMFCToolBarFontComboBox CMFCToolBarFontComboBox Tworzy obiekt.

Metody publiczne

Nazwa/nazwisko opis
CMFCToolBarFontComboBox::GetFontDesc Zwraca wskaźnik do CMFCFontInfo obiektu dla określonego indeksu w polu kombi.
CMFCToolBarFontComboBox::SetFont Wybiera czcionkę w polu kombi czcionki zgodnie z nazwą czcionki lub prefiksem i zestawem znaków czcionki.

Składowe danych

CMFCToolBarFontComboBox::m_nFontHeight
Wysokość znaków w polu kombi czcionki.

Uwagi

Aby dodać przycisk pola kombi czcionki do paska narzędzi, wykonaj następujące kroki:

  1. Zarezerwuj fikcyjny identyfikator zasobu dla przycisku w zasobie nadrzędnego paska narzędzi.

  2. Konstruowanie CMFCToolBarFontComboBox obiektu.

  3. W procedurze obsługi komunikatów, która przetwarza komunikat AFX_WM_RESETTOOLBAR, zastąp oryginalny przycisk nowym polem kombi za pomocą CMFCToolBar::ReplaceButton.

  4. Zsynchronizuj czcionkę wybraną w polu kombi z czcionką w dokumencie przy użyciu metody CMFCToolBarFontComboBox::SetFont .

Aby zsynchronizować czcionkę dokumentu z czcionką wybraną w polu kombi, użyj metody CMFCToolBarFontComboBox::GetFontDesc , aby pobrać atrybuty wybranej czcionki i użyć tych atrybutów do utworzenia obiektu klasy CFont.

Przycisk pola kombi czcionki wywołuje funkcję Win32 EnumFontFamiliesEx , aby określić czcionki ekranu i drukarki dostępne dla systemu.

Hierarchia dziedziczenia

Obiekt CObject

CMFCToolBarButton

CMFCToolBarComboBoxButton

CMFCToolBarFontComboBox

Wymagania

Nagłówek: afxtoolbarfontcombobox.h

CMFCToolBarFontComboBox::CMFCToolBarFontComboBox

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

Parametry

identyfikator uiID
[in] Identyfikator polecenia pola kombi.

iImage
[in] Indeks na podstawie zera obrazu paska narzędzi. Obraz znajduje się w obiekcie klasy CMFCToolBarImages, który obsługuje klasa CMFCToolBar.

nFontType
[in] Typy czcionek, które zawiera pole kombi. Ten parametr może być kombinacją (wartość logiczna OR) następujących wartości:

DEVICE_FONTTYPE

RASTER_FONTTYPE

TRUETYPE_FONTTYPE

nCharSet
[in] Jeśli ustawiono wartość DEFAULT_CHARSET, pole kombi zawiera wszystkie unikatowo nazwane czcionki we wszystkich zestawach znaków. (Jeśli istnieją dwie czcionki o tej samej nazwie, pole kombi zawiera jedną z nich). Jeśli ustawiono prawidłową wartość zestawu znaków, pole kombi zawiera tylko czcionki w określonym zestawie znaków. Zobacz LOGFONT , aby zapoznać się z listą możliwych zestawów znaków.

dwStyle
[in] Styl pola kombi. (zobacz Style pola kombi)

iWidth
[in] Szerokość w pikselach kontrolki edycji.

nPitchAndFamily
[in] Jeśli ustawiono wartość DEFAULT_PITCH, pole kombi zawiera czcionki niezależnie od wartości pitch. Jeśli ustawiono wartość FIXED_PITCH lub VARIABLE_PITCH, pole kombi zawiera tylko czcionki o tym typie skoku. Filtrowanie na podstawie rodziny czcionek nie jest obecnie obsługiwane.

pLstFontsExternal
[out] Wskaźnik do obiektu klasy CObList, który przechowuje dostępne czcionki.

Uwagi

CMFCToolBarFontComboBox Zazwyczaj obiekty przechowują listę dostępnych czcionek w jednym obiekcie udostępnionymCObList. Jeśli używasz drugiego przeciążenia konstruktora i podasz prawidłowy wskaźnik pLstFontsExternal, ten CMFCToolBarFontComboBox obiekt wypełni CObList te punkty pLstFontsExternal dostępnymi czcionkami.

Przykład

W poniższym przykładzie pokazano, jak utworzyć CMFCToolBarFontComboBox obiekt. Ten fragment kodu jest częścią przykładu okienka word.

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

Zwraca wskaźnik do CMFCFontInfo obiektu dla określonego indeksu w polu kombi.

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

Parametry

iIndex
[in] Określa indeks zerowy elementu pola kombi.

Wartość zwracana

Wskaźnik do CMFCFontInfo obiektu. Jeśli indeks iIndex nie określi prawidłowego indeksu elementu, zwracana wartość ma wartość NULL.

CMFCToolBarFontComboBox::m_nFontHeight

Określa wysokość w pikselach znaków w polu kombi czcionki, jeśli pole kombi ma styl rysowania właściciela.

static int m_nFontHeight

Uwagi

Jeśli zmienna m_nFontHeight ma wartość 0, wysokość jest obliczana automatycznie zgodnie z domyślną czcionką pola kombi. Wysokość obejmuje zarówno wzrost znaków powyżej punktu odniesienia, jak i spadek znaków poniżej punktu odniesienia.

CMFCToolBarFontComboBox::SetFont

Wybiera czcionkę w polu kombi czcionki zgodnie z nazwą czcionki i zestawem znaków określonym w parametrach.

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

Parametry

lpszName
[in] Określa nazwę czcionki lub prefiks.

nCharSet
[in] Określa zestaw znaków.

bExact
[in] Określa, czy lpszName zawiera nazwę czcionki, czy prefiks czcionki.

Wartość zwracana

Niezero, jeśli czcionka została wybrana pomyślnie; w przeciwnym razie 0.

Uwagi

Jeśli wartość bExact ma wartość TRUE, ta metoda wybiera czcionkę, która dokładnie odpowiada nazwie określonej jako lpszName. Jeśli bExact ma wartość FALSE, ta metoda wybiera czcionkę rozpoczynającą się od tekstu określonego jako lpszName i używającego zestawu znaków określonego jako nCharSet. Jeśli dla parametru nCharSet ustawiono wartość DEFAULT_CHARSET, zestaw znaków zostanie zignorowany i zostanie użyty tylko parametr lpszName do wybrania czcionki.

Zobacz też

Wykres hierarchii
Klasy
Klasa CMFCToolBar
Klasa CMFCToolBarButton
Klasa CMFCToolBarComboBoxButton
Klasa CMFCFontInfo
CMFCToolBar::ReplaceButton
Przewodnik: umieszczanie kontrolek na paskach narzędzi