Udostępnij za pośrednictwem


Klasa CFontDialog

Umożliwia dołączenie okna dialogowego wyboru czcionek do aplikacji.

Składnia

class CFontDialog : public CCommonDialog

Elementy członkowskie

Konstruktory publiczne

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

Metody publiczne

Nazwa/nazwisko opis
CFontDialog::D oModal Wyświetla okno dialogowe i umożliwia użytkownikowi dokonanie wyboru.
CFontDialog::GetCharFormat Pobiera formatowanie znaków wybranej czcionki.
CFontDialog::GetColor Zwraca kolor wybranej czcionki.
CFontDialog::GetCurrentFont Przypisuje właściwości aktualnie wybranej czcionki do LOGFONT struktury.
CFontDialog::GetFaceName Zwraca nazwę twarzy wybranej czcionki.
CFontDialog::GetSize Zwraca rozmiar punktu wybranej czcionki.
CFontDialog::GetStyleName Zwraca nazwę stylu wybranej czcionki.
CFontDialog::GetWeight Zwraca wagę wybranej czcionki.
CFontDialog::IsBold Określa, czy czcionka jest pogrubiona.
CFontDialog::IsItalic Określa, czy czcionka jest kursywa.
CFontDialog::IsStrikeOut Określa, czy czcionka jest wyświetlana za pomocą przekreślenia.
CFontDialog::IsUnderline Określa, czy czcionka jest podkreślona.

Publiczne elementy członkowskie danych

Nazwa/nazwisko opis
CFontDialog::m_cf Struktura używana do dostosowywania CFontDialog obiektu.

Uwagi

CFontDialog Obiekt to okno dialogowe z listą czcionek, które są obecnie zainstalowane w systemie. Użytkownik może wybrać określoną czcionkę z listy, a ten wybór zostanie następnie zgłoszony z powrotem do aplikacji.

Aby skonstruować CFontDialog obiekt, użyj dostarczonego konstruktora lub utwórz nową podklasę i użyj własnego konstruktora niestandardowego.

Po utworzeniu CFontDialog obiektu można użyć m_cf struktury do zainicjowania wartości lub stanów kontrolek w oknie dialogowym. Struktura m_cf jest typu CHOOSEFONT. Aby uzyskać więcej informacji na temat tej struktury, zobacz Zestaw WINDOWS SDK.

Po zainicjowaniu kontrolek obiektu okna dialogowego wywołaj DoModal funkcję składową, aby wyświetlić okno dialogowe i zezwolić użytkownikowi na wybranie czcionki. DoModal zwraca, czy użytkownik wybrał przycisk OK (IDOK) lub Anuluj (IDCANCEL).

Jeśli DoModal funkcja IDOK zwraca wartość IDOK, możesz użyć jednej z CFontDialogfunkcji członkowskich, aby pobrać informacje wejściowe przez użytkownika.

Możesz użyć funkcji Windows CommDlgExtendedError , aby określić, czy wystąpił błąd podczas inicjowania okna dialogowego i dowiedzieć się więcej o błędzie. Aby uzyskać więcej informacji na temat tej funkcji, zobacz Zestaw Windows SDK.

CFontDialog korzysta z pliku COMMDLG.DLL dostarczanego z systemem Windows w wersji 3.1 lub nowszej.

Aby dostosować okno dialogowe, utwórz klasę z CFontDialog, podaj niestandardowy szablon okna dialogowego i dodaj mapę komunikatów w celu przetworzenia komunikatów z rozszerzonych kontrolek. Wszystkie nieprzetworzone komunikaty powinny być przekazywane do klasy bazowej.

Dostosowywanie funkcji haka nie jest wymagane.

Aby uzyskać więcej informacji na temat korzystania z programu CFontDialog, zobacz Typowe klasy okien dialogowych.

Hierarchia dziedziczenia

Obiekt CObject

CCmdTarget

CWnd

CDialog

CCommonDialog

CFontDialog

Wymagania

Nagłówek: afxdlgs.h

CFontDialog::CFontDialog

CFontDialog Tworzy obiekt.

CFontDialog(
    LPLOGFONT lplfInitial = NULL,
    DWORD dwFlags = CF_EFFECTS | CF_SCREENFONTS,
    CDC* pdcPrinter = NULL,
    CWnd* pParentWnd = NULL);

CFontDialog(
    const CHARFORMAT& charformat,
    DWORD dwFlags = CF_SCREENFONTS,
    CDC* pdcPrinter = NULL,
    CWnd* pParentWnd = NULL);

Parametry

plfInitial
Wskaźnik do struktury danych LOGFONT , który umożliwia ustawienie niektórych cech czcionki.

charFormat
Wskaźnik do struktury danych CHARFORMAT , który umożliwia ustawienie niektórych cech czcionki w rozbudowanej kontrolce edycji.

dwFlags
Określa co najmniej jedną flagę wybierania czcionki. Co najmniej jedna wstępnie ustawiona wartość może być połączona przy użyciu operatora bitowego OR. Jeśli zmodyfikujesz składową m_cf.Flagstruktury, pamiętaj, aby zachować domyślne zachowanie bez zmian za pomocą operatora BIT OR. Aby uzyskać szczegółowe informacje na temat każdej z tych flag, zobacz opis struktury CHOOSEFONT w zestawie WINDOWS SDK.

pdcPrinter
Wskaźnik do kontekstu drukarki urządzenia. W przypadku dostarczenia ten parametr wskazuje kontekst drukarki urządzenia dla drukarki, na której mają być wybrane czcionki.

pParentWnd
Wskaźnik do okna nadrzędnego lub właściciela okna dialogowego czcionki.

Uwagi

Należy pamiętać, że konstruktor automatycznie wypełnia elementy członkowskie CHOOSEFONT struktury. Należy je zmienić tylko wtedy, gdy chcesz, aby okno dialogowe czcionki było inne niż domyślne.

Uwaga

Pierwsza wersja tej funkcji istnieje tylko wtedy, gdy nie ma obsługi rozbudowanej kontroli edycji.

Przykład

// Show the font dialog with all the default settings.
CFontDialog dlg;
dlg.DoModal();

// Show the font dialog with 12 point "Times New Roman" as the
// selected font.
LOGFONT lf;
memset(&lf, 0, sizeof(LOGFONT));

CClientDC dc(this); // expects a CWnd that has already been initialized
lf.lfHeight = -MulDiv(12, dc.GetDeviceCaps(LOGPIXELSY), 72);
_tcscpy_s(lf.lfFaceName, LF_FACESIZE, _T("Times New Roman"));

CFontDialog fdlg(&lf);
fdlg.DoModal();

CFontDialog::D oModal

Wywołaj tę funkcję, aby wyświetlić typowe okno dialogowe czcionki systemu Windows i zezwolić użytkownikowi na wybranie czcionki.

virtual INT_PTR DoModal();

Wartość zwracana

IDOK lub IDCANCEL. Jeśli element IDCANCEL jest zwracany, wywołaj funkcję Windows CommDlgExtendedError , aby ustalić, czy wystąpił błąd.

IDOK i IDCANCEL są stałymi, które wskazują, czy użytkownik wybrał przycisk OK, czy Anuluj.

Uwagi

Jeśli chcesz zainicjować różne kontrolki okna dialogowego czcionek, ustawiając elementy członkowskie struktury m_cf , należy to zrobić przed wywołaniem DoModalmetody , ale po utworzeniu obiektu okna dialogowego.

Jeśli DoModal funkcja IDOK zwraca wartość IDOK, możesz wywołać inne funkcje członkowskie, aby pobrać ustawienia lub informacje wejściowe przez użytkownika do okna dialogowego.

Przykład

Zobacz przykłady dla CFontDialog::CFontDialog i CFontDialog::GetColor.

CFontDialog::GetCharFormat

Pobiera formatowanie znaków wybranej czcionki.

void GetCharFormat(CHARFORMAT& cf) const;

Parametry

por
Struktura CHARFORMAT zawierająca informacje o formatowaniu znaków wybranej czcionki.

CFontDialog::GetColor

Wywołaj tę funkcję, aby pobrać wybrany kolor czcionki.

COLORREF GetColor() const;

Wartość zwracana

Kolor wybranej czcionki.

Przykład

// Get the color of the selected font, if any.
CFontDialog dlg;
if (dlg.DoModal() == IDOK)
{
   COLORREF color = dlg.GetColor();
   TRACE(_T("Color of the selected font = %8x\n"), color);
}

CFontDialog::GetCurrentFont

Wywołaj tę funkcję, aby przypisać cechy aktualnie wybranej czcionki do elementów członkowskich struktury LOGFONT .

void GetCurrentFont(LPLOGFONT lplf);

Parametry

lplf
Wskaźnik do LOGFONT struktury.

Uwagi

Inne CFontDialog funkcje składowe są udostępniane w celu uzyskania dostępu do poszczególnych cech bieżącej czcionki.

Jeśli ta funkcja jest wywoływana podczas wywołania funkcji DoModal, zwraca bieżące zaznaczenie w tym czasie (co użytkownik widzi lub zmienił w oknie dialogowym). Jeśli ta funkcja jest wywoływana po wywołaniu metody DoModal (tylko jeśli DoModal zwraca element IDOK), zwraca to, co użytkownik faktycznie wybrał.

Przykład

// Get the characteristics of the currently selected font, if any.
CFontDialog dlg;
if (dlg.DoModal() == IDOK)
{
   LOGFONT lf;
   dlg.GetCurrentFont(&lf);
   TRACE(_T("Face name of the selected font = %s\n"), lf.lfFaceName);
}

CFontDialog::GetFaceName

Wywołaj tę funkcję, aby pobrać nazwę twarzy wybranej czcionki.

CString GetFaceName() const;

Wartość zwracana

Nazwa twarzy czcionki wybranej CFontDialog w oknie dialogowym.

Przykład

// Get the face name of the selected font, if any.
CFontDialog dlg;
if (dlg.DoModal() == IDOK)
{
   CString facename = dlg.GetFaceName();
   TRACE(_T("Face name of the selected font = %s\n"), facename);
}

CFontDialog::GetSize

Wywołaj tę funkcję, aby pobrać rozmiar wybranej czcionki.

int GetSize() const;

Wartość zwracana

Rozmiar czcionki w dziesiątych punktów.

Przykład

// Get the size of the selected font, if any.
CFontDialog dlg;
if (dlg.DoModal() == IDOK)
{
   int size = dlg.GetSize();
   TRACE(_T("The size of the selected font = %d\n"), size);
}

CFontDialog::GetStyleName

Wywołaj tę funkcję, aby pobrać nazwę stylu wybranej czcionki.

CString GetStyleName() const;

Wartość zwracana

Nazwa stylu czcionki.

Przykład

// Get the style name of the selected font, if any.
CFontDialog dlg;
dlg.m_cf.Flags |= CF_USESTYLE;
if (dlg.DoModal() == IDOK)
{
   CString stylename = dlg.GetStyleName();
   TRACE(_T("Style name of the selected font = %s\n"), stylename);
}

CFontDialog::GetWeight

Wywołaj tę funkcję, aby pobrać wagę wybranej czcionki.

int GetWeight() const;

Wartość zwracana

Waga wybranej czcionki.

Uwagi

Aby uzyskać więcej informacji na temat wagi czcionki, zobacz CFont::CreateFont.

Przykład

// Get the weight of the selected font, if any.
CFontDialog dlg;
if (dlg.DoModal() == IDOK)
{
   int weight = dlg.GetWeight();
   TRACE(_T("Weight of the selected font = %d\n"), weight);
}

CFontDialog::IsBold

Wywołaj tę funkcję, aby określić, czy wybrana czcionka jest pogrubiona.

BOOL IsBold() const;

Wartość zwracana

Niezero, jeśli wybrana czcionka ma włączoną charakterystykę pogrubioną; w przeciwnym razie 0.

Przykład

// Is the selected font bold?
CFontDialog dlg;
if (dlg.DoModal() == IDOK)
{
   BOOL bold = dlg.IsBold();
   TRACE(_T("Is the selected font bold? %d\n"), bold);
}

CFontDialog::IsItalic

Wywołaj tę funkcję, aby określić, czy wybrana czcionka jest kursywą.

BOOL IsItalic() const;

Wartość zwracana

Niezerowe, jeśli wybrana czcionka ma włączoną charakterystykę kursywą; w przeciwnym razie 0.

Przykład

// Is the selected font italic?
CFontDialog dlg;
if (dlg.DoModal() == IDOK)
{
   BOOL italic = dlg.IsItalic();
   TRACE(_T("Is the selected font italic? %d\n"), italic);
}

CFontDialog::IsStrikeOut

Wywołaj tę funkcję, aby określić, czy wybrana czcionka jest wyświetlana z przekreśleniem.

BOOL IsStrikeOut() const;

Wartość zwracana

Nonzero, jeśli wybrana czcionka ma włączoną charakterystykę Strikeout; w przeciwnym razie 0.

Przykład

// Is the selected font displayed with strikeout?

CFontDialog dlg;
if (dlg.DoModal() == IDOK)
{
   BOOL strikeout = dlg.IsStrikeOut();
   TRACE(_T("Is the selected font strikeout? %d\n"), strikeout);
}

CFontDialog::IsUnderline

Wywołaj tę funkcję, aby określić, czy zaznaczona czcionka jest podkreślona.

BOOL IsUnderline() const;

Wartość zwracana

Niezerowe, jeśli wybrana czcionka ma włączoną charakterystykę podkreśleniu; w przeciwnym razie 0.

Przykład

// Is the selected font underlined?
CFontDialog dlg;
if (dlg.DoModal() == IDOK)
{
   BOOL underline = dlg.IsUnderline();
   TRACE(_T("Is the selected font underlined? %d\n"), underline);
}

CFontDialog::m_cf

Struktura, której elementy członkowskie przechowują cechy obiektu okna dialogowego.

CHOOSEFONT m_cf;

Uwagi

Po utworzeniu CFontDialog obiektu można użyć m_cf polecenia , aby zmodyfikować różne aspekty okna dialogowego przed wywołaniem funkcji składowej DoModal . Aby uzyskać więcej informacji na temat tej struktury, zobacz CHOOSEFONT w zestawie Windows SDK.

Przykład

// The code fragment creates a font based on the information
// we got from CFontDialog::m_cf variable.

CFontDialog dlg;
if (dlg.DoModal() == IDOK)
{
   // Create the font using the selected font from CFontDialog.
   LOGFONT lf;
   memcpy(&lf, dlg.m_cf.lpLogFont, sizeof(LOGFONT));

   CFont font;
   VERIFY(font.CreateFontIndirect(&lf));

   // Do something with the font just created...
   CClientDC dc(this);
   CFont *def_font = dc.SelectObject(&font);
   dc.TextOut(5, 5, _T("Hello"), 5);
   dc.SelectObject(def_font);

   // Done with the font. Delete the font object.
   font.DeleteObject();
}

Zobacz też

Przykład MFC HIERSVR
Klasa CCommonDialog
Wykres hierarchii