Alegerea unui Font

Acest subiect descrie mostre de cod, care afișează o casetă de dialog Font , astfel încât utilizatorul poate alege atributele de un font. Mostre de cod prima inițializează o structura CHOOSEFONT , ?i apoi apelează funcția ChooseFont pentru a afișa caseta de dialog.

Acest exemplu seturi de pavilion CF_SCREENFONTS pentru a preciza că caseta de dialog ar trebui să afișeze numai fonturile de ecran. Aceasta stabilește pavilion CF_EFFECTS pentru a afișa comenzile care permite utilizatorului să selectați Ștergere, subliniere și opțiuni de culoare.

Dacă ChooseFont întoarce TRUE, indicând că utilizatorul face clic pe butonul OK , LOGFONT structura a subliniat de membru lpLogFont din structura CHOOSEFONT conține informații care descrie fontul și atribute font selectat de utilizator. Membru rgbColors conține culoarea textului selectat. Mostre de cod utilizează aceste informații pentru a seta culoarea de font și text pentru contextul de dispozitiv asociat cu fereastra proprietar.

HWND hwnd;                / / proprietar fereastra
HDC hdc;                  / / afișa dispozitiv contextul proprietarul fereastra

CHOOSEFONT cf;            / / caseta de dialog comun structura
static LOGFONT lf;        / / logică structura font
statice DWORD rgbCurrent;   / / curent culoarea textului
HFONT hfont, hfontPrev;
DWORD rgbPrev;

/ / Ini?ializarea CHOOSEFONT
ZeroMemory (amp; cf, sizeof(CHOOSEFONT));
CF.lStructSize = sizeof (CHOOSEFONT);
CF.hwndOwner = hwnd;
CF.lpLogFont = & lf;
CF.rgbColors = rgbCurrent;
CF.Steaguri = CF_SCREENFONTS | CF_EFFECTS;

Dacă (ChooseFont(&cf) == adevărat) {}
    hfont = CreateFontIndirect(cf.lpLogFont);
    hfontPrev = SelectObject (hdc, hfont);
    rgbCurrent = cf.rgbColors;
    rgbPrev = SetTextColor (hdc, rgbCurrent);
 .
 .
 .
} 

Index