CFontDialog – třída
Umožňuje začlenit do aplikace dialogové okno pro výběr písma.
Syntaxe
class CFontDialog : public CCommonDialog
Členové
Veřejné konstruktory
Název | Popis |
---|---|
CFontDialog::CFontDialog | CFontDialog Vytvoří objekt. |
Veřejné metody
Název | Popis |
---|---|
CFontDialog::D oModal | Zobrazí dialogové okno a umožní uživateli provést výběr. |
CFontDialog::GetCharFormat | Načte formátování znaků vybraného písma. |
CFontDialog::GetColor | Vrátí barvu vybraného písma. |
CFontDialog::GetCurrentFont | Přiřadí vlastnosti aktuálně vybraného písma ke struktuře LOGFONT . |
CFontDialog::GetFaceName | Vrátí název tváře vybraného písma. |
CFontDialog::GetSize | Vrátí velikost bodu vybraného písma. |
CFontDialog::GetStyleName | Vrátí název stylu vybraného písma. |
CFontDialog::GetWeight | Vrátí váhu vybraného písma. |
CFontDialog::IsBold | Určuje, zda je písmo tučné. |
CFontDialog::IsItalic | Určuje, zda je písmo kurzívou. |
CFontDialog::IsStrikeOut | Určuje, zda je písmo zobrazeno pomocí přeškrtnutí. |
CFontDialog::IsUnderline | Určuje, zda je písmo podtržené. |
Veřejné datové členy
Název | Popis |
---|---|
CFontDialog::m_cf | Struktura použitá k přizpůsobení objektu CFontDialog . |
Poznámky
Objekt CFontDialog
je dialogové okno se seznamem písem, která jsou aktuálně nainstalována v systému. Uživatel může ze seznamu vybrat konkrétní písmo a tento výběr se pak ohlásí zpět do aplikace.
K vytvoření objektu CFontDialog
použijte zadaný konstruktor nebo odvodit novou podtřídu a použijte vlastní konstruktor.
CFontDialog
Po vytvoření objektu můžete pomocí m_cf
struktury inicializovat hodnoty nebo stavy ovládacích prvků v dialogovém okně. Struktura m_cf je typu CHOOSEFONT. Další informace o této struktuře najdete v sadě Windows SDK.
Po inicializaci ovládacíchprvkůch DoModal
DoModal
vrátí, zda uživatel vybral tlačítko OK (IDOK) nebo Zrušit (IDCANCEL).
Pokud DoModal
vrátí idOK, můžete k načtení informací zadaných uživatelem použít některou z CFontDialog
členských funkcí.
Pomocí funkce CommDlgExtendedError systému Windows můžete určit, jestli během inicializace dialogového okna došlo k chybě, a získat další informace o chybě. Další informace o této funkci najdete v sadě Windows SDK.
CFontDialog
spoléhá na COMMDLG.DLL soubor, který je dodáván s Windows verze 3.1 a novější.
Chcete-li přizpůsobit dialogové okno, odvodit třídu z CFontDialog
, poskytnout vlastní dialogové okno šablony a přidat mapu zpráv pro zpracování oznámení zprávy z rozšířených ovládacích prvků. Všechny nezpracované zprávy by měly být předány do základní třídy.
Přizpůsobení funkce háku se nevyžaduje.
Další informace o použití CFontDialog
naleznete v tématu Běžné třídy dialogových oken.
Hierarchie dědičnosti
CFontDialog
Požadavky
Hlavička: afxdlgs.h
CFontDialog::CFontDialog
CFontDialog
Vytvoří objekt.
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
Ukazatel na datovou strukturu LOGFONT , která umožňuje nastavit některé vlastnosti písma.
charFormat
Ukazatel na datovou strukturu CHARFORMAT , která umožňuje nastavit některé vlastnosti písma v ovládacím prvku pro úpravy s formátováním.
dwFlags
Určuje jeden nebo více příznaků pro výběr písma. Jednu nebo více přednastavených hodnot lze kombinovat pomocí bitového operátoru OR. Pokud upravíte m_cf.Flag
člen struktury, nezapomeňte ve změnách použít bitový operátor OR, abyste zachovali výchozí chování beze změny. Podrobnosti o každém z těchto příznaků najdete v popisu struktury CHOOSEFONT v sadě Windows SDK.
pdcPrinter
Ukazatel na kontext zařízení tiskárny. Pokud je zadán, tento parametr odkazuje na kontext zařízení tiskárny pro tiskárnu, na které mají být vybrána písma.
pParentWnd
Ukazatel na okno nadřazeného nebo vlastníka dialogového okna písma
Poznámky
Všimněte si, že konstruktor automaticky vyplní členy CHOOSEFONT
struktury. Tyto hodnoty byste měli změnit jenom v případě, že chcete, aby se dialogové okno písem lišit od výchozího.
Poznámka:
První verze této funkce existuje pouze v případě, že neexistuje podpora ovládacích prvků pro úpravy s formátem.
Příklad
// 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
Voláním této funkce zobrazíte dialogové okno Běžné písmo systému Windows a umožníte uživateli zvolit písmo.
virtual INT_PTR DoModal();
Návratová hodnota
IDOK nebo IDCANCEL. Pokud je vrácena funkce IDCANCEL, zavolejte funkci CommDlgExtendedError systému Windows, abyste zjistili, zda došlo k chybě.
IDOK a IDCANCEL jsou konstanty, které označují, zda uživatel vybral tlačítko OK nebo Zrušit.
Poznámky
Pokud chcete inicializovat různé ovládací prvky dialogového okna písma nastavením členů struktury m_cf , měli byste to udělat před voláním DoModal
, ale po vytvoření objektu dialogového okna.
Pokud DoModal
vrátí idOK, můžete volat další členské funkce, které načtou nastavení nebo informace zadané uživatelem do dialogového okna.
Příklad
Podívejte se na příklady pro CFontDialog::CFontDialog a CFontDialog::GetColor.
CFontDialog::GetCharFormat
Načte formátování znaků vybraného písma.
void GetCharFormat(CHARFORMAT& cf) const;
Parametry
viz
Struktura CHARFORMAT obsahující informace o formátování znaků vybraného písma.
CFontDialog::GetColor
Voláním této funkce načtěte vybranou barvu písma.
COLORREF GetColor() const;
Návratová hodnota
Barva vybraného písma
Příklad
// 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
Voláním této funkce přiřaďte vlastnosti aktuálně vybraného písma členům struktury LOGFONT .
void GetCurrentFont(LPLOGFONT lplf);
Parametry
lplf
Ukazatel na LOGFONT
strukturu.
Poznámky
Další CFontDialog
členské funkce jsou poskytovány pro přístup k jednotlivým charakteristikám aktuálního písma.
Pokud je tato funkce volána během volání doModal, vrátí aktuální výběr v době (co uživatel uvidí nebo změnil v dialogovém okně). Pokud je tato funkce volána po volání DoModal
(pouze pokud DoModal
vrátí idOK), vrátí to, co uživatel skutečně vybral.
Příklad
// 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
Voláním této funkce načtěte název tváře vybraného písma.
CString GetFaceName() const;
Návratová hodnota
Název tváře písma vybraného CFontDialog
v dialogovém okně
Příklad
// 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
Voláním této funkce načtěte velikost vybraného písma.
int GetSize() const;
Návratová hodnota
Velikost písma v desátých bodech.
Příklad
// 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
Voláním této funkce načtěte název stylu vybraného písma.
CString GetStyleName() const;
Návratová hodnota
Název stylu písma.
Příklad
// 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
Voláním této funkce načtěte váhu vybraného písma.
int GetWeight() const;
Návratová hodnota
Váha vybraného písma.
Poznámky
Další informace o hmotnosti písma naleznete v tématu CFont::CreateFont.
Příklad
// 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
Voláním této funkce určíte, jestli je vybrané písmo tučné.
BOOL IsBold() const;
Návratová hodnota
Nenulové, pokud má vybrané písmo povolenou charakteristiku Tučné; jinak 0.
Příklad
// 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
Voláním této funkce určíte, jestli je vybrané písmo kurzíva.
BOOL IsItalic() const;
Návratová hodnota
Nenulové, pokud má vybrané písmo povolenou kurzívu; jinak 0.
Příklad
// 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
Voláním této funkce určíte, jestli je vybrané písmo zobrazeno pomocí přeškrtnutí.
BOOL IsStrikeOut() const;
Návratová hodnota
Nenulové, pokud má vybrané písmo povolenou charakteristické přeškrtnutí; jinak 0.
Příklad
// 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
Voláním této funkce určíte, jestli je vybrané písmo podtržené.
BOOL IsUnderline() const;
Návratová hodnota
Nenulové, pokud má vybrané písmo povolenou vlastnost Podtržení; jinak 0.
Příklad
// 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, jejíž členové ukládají charakteristiky objektu dialogového okna.
CHOOSEFONT m_cf;
Poznámky
Po vytvoření objektu CFontDialog
můžete před voláním DoModal
členské funkce upravit m_cf
různé aspekty dialogového okna. Další informace o této struktuře naleznete v tématu CHOOSEFONT v sadě Windows SDK.
Příklad
// 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();
}