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 CFontDialog
funkcji 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
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.Flag
struktury, 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 DoModal
metody , 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();
}