בחירת גופן

נושא זה מתאר דוגמה של קוד מציגה תיבת דו-שיח גופן כך שמשתמש יכול לבחור את התכונות של גופן. הקוד לדוגמה תחילה אתחול מבנה CHOOSEFONT , ולאחר מכן קורא את הפונקציה ChooseFont כדי להציג את תיבת הדו-שיח.

דוגמה זו מגדירה את דגל CF_SCREENFONTS כדי לציין תיבת הדו-שיח צריך להציג רק גופני מסך. היא קובעת את הדגל CF_EFFECTS כדי להציג פקדים לאפשר למשתמש לבחור קו חוצה, קו תחתון ואפשרויות צבע.

אם ChooseFont מחזירה TRUE, המציין כי המשתמש לוחץ על לחצן אישור , LOGFONT מבנה הצביע על-ידי חבר lpLogFont של מבנה CHOOSEFONT מכיל מידע המתאר את הגופן ואת תכונות הגופן שנבחר על-ידי המשתמש. חבר rgbColors מכיל את צבע הטקסט שנבחר. הקוד לדוגמה משתמשת במידע זה כדי להגדיר את צבע הגופן ואת טקסט עבור הקשר ההתקן המשויך חלון בעלים.

HWND hwnd;                / / חלון בעלים
HDC hdc;                  / / להציג בהקשר התקן של חלון הבעלים

CHOOSEFONT cf;            / / מבנה תיבת דו-שיח נפוצות
lf LOGFONT סטטי;        / / לוגי מבנה גופן
rgbCurrent DWORD סטטי;   / / זרם צבע טקסט
HFONT hfont, hfontPrev;
DWORD rgbPrev;

/ / אתחול CHOOSEFONT
ZeroMemory (כח; סיסטיק פיברוזיס, sizeof(CHOOSEFONT));
cf.lStructSize = sizeof (CHOOSEFONT);
cf.hwndOwner = hwnd;
cf.lpLogFont = & lf;
cf.rgbColors = rgbCurrent;
cf.דגלים = CF_SCREENFONTS | CF_EFFECTS;

אם (ChooseFont(&cf) = = TRUE) {
    hfont = CreateFontIndirect(cf.lpLogFont);
    hfontPrev = SelectObject (hdc, hfont);
    rgbCurrent = cf.rgbColors;
    rgbPrev = SetTextColor (hdc, rgbCurrent);
 .
 .
 .
} 

Index