一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

CreateFont詳解

 無云666 2014-01-19


 CFont * f;
   f = new CFont;
   f->CreateFont(10, // nHeight
        0, // nWidth
        0, // nEscapement
        0, // nOrientation
        FW_BOLD, // nWeight
        FALSE, // bItalic
        FALSE, // bUnderline
        0, // cStrikeOut
        ANSI_CHARSET, // nCharSet
        OUT_DEFAULT_PRECIS, // nOutPrecision
        CLIP_DEFAULT_PRECIS, // nClipPrecision
                          DEFAULT_QUALITY, // nQuality
           DEFAULT_PITCH | FF_SWISS, // nPitchAndFamily
           _T("Arial")); // lpszFac

 

 

cHeight是字體的高度。
cWidth是字體的寬度。
cEscapement是字體的傾斜角。
cOrientation是字體的傾斜角。
cWeight是字體的粗細(xì)。
bItalic是字體是否斜體。
bUnderline是字體是否有下劃線。
bStrikeOut是字體是否有刪除線。
iCharSet是字體使用的字符集。
iOutPrecision是指定如何選擇合適的字體。
iClipPrecision是用來確定裁剪的精度。
iQuality是怎么樣跟選擇的字體相符合。
iPitchAndFamily是間距標(biāo)志和屬性標(biāo)志。
pszFaceName是字體的名稱。

 


函數(shù)功能:該函數(shù)創(chuàng)建一種有特殊性的邏輯字體,此邏輯字體可以在后面被任何設(shè)備選擇。

    函數(shù)原型:HFONT CreateFont(int nHeight, int nWidth, int nEscapement, int nOrientation, int fnWeight, DWORD fdwltalic, DWORD fdwUnderline, DWORD fdwStrikeOut, DWORD

fdwCharSet, DWORD fdwOutputPrecision, DWORD fdwClipPrecision, DWORD fdwQuality, DWORD fdwPitchAndFamily, LPCTSTR lpszFace);

    參數(shù):

    nHeight:指定字體的字符單元或字符的邏輯單位高度,字符的高度值(也被稱為em高度)是指字符單元高度值減去內(nèi)部標(biāo)頭值。字體映射器以如下方式解釋nHeight指定的值,各值含義

為:

    >0:字體映射器轉(zhuǎn)換這個值以設(shè)備單位,并和已有字體的單元高度相匹配。

    0:字體映射器轉(zhuǎn)換在選擇匹配時用一個缺省的高度值。

    <0:字體映射器轉(zhuǎn)換這個值到設(shè)備單位,并將它的絕對值和已有字體的字符高度相匹配。

    比較所有的高度,字體映射器選擇不超過要求大小的最大字體。

    此映射當(dāng)字體第一次被使用時發(fā)生。

    對于MM_TEXT映射方式,可以用下面的公式為一種指定了點大小的字體確定高度:

    nHeight=-MulDiv(PointSize, GetDeviceCaps(hDC, LOGPIXELSY),72)

    nWidth:指定所要求字體的字符的邏輯單位的平均寬度。如果此值為0,字體映射器選擇一個closest match值,closest match值是由比較當(dāng)前設(shè)備的特征系數(shù)與可使用字體的數(shù)字化特征

系數(shù)之差的絕對值而確定的。

    nEscapement:指定移位向量和設(shè)備X軸之間的一個角度,以十分之一度為單位。移位向量平行于正文行的基線。

    Windows NT:當(dāng)圖形設(shè)備設(shè)置為GM_ADVANCED時,可以不依賴字符串的字符的定位角而指定字符串的移位角。

    當(dāng)圖形模式被設(shè)置為GM_COMPATIBLE時,nEscapement同時指定移位角和定位角,可以設(shè)置nEscapement和nOrientation為相同的值。

    Windows 95:nEscapement同時指定移位角和定位角,可設(shè)置nEscapement和nOrientation為相同的值。

    nOrientation:指定每個字符的基線和設(shè)備X軸之間的角度。

    FnWeight:在0到1000之間指定字體的權(quán)值,如400表示標(biāo)準(zhǔn)體,700表示黑(粗)體,如果此值為0,則使用缺省的權(quán)值。

    為方便定義,可使用如下值:

    FW_DONTCARE:0;FW_THIN;100;FW_EXTRALIGHT;200;FW_ULTRALIGHT;200;FW_LIGHT;300;

    FW_NORMAL:400;FW_REGULAR;400;FW_MEDIUM;500;FW_SEMIBOLD;600;FW_DEMIBOLD;600;

    FW_BOLD:700;FW_EXTRABOLD;800;FW_ULTRABOLD;800;FW_HEAVY;900;FW_BLACK;900。

    fdwItalic:如果設(shè)置為TRUE則指定斜體。

    fdwUnderline:如果設(shè)置為TRUE,則指定加下劃線的字全。

    fdwStrikeOut:如果設(shè)置為TRUE,則strikeout指定字體。

    fdwCharSet:指定字符集,下列值是預(yù)定義的:

    ANSI_CHARSET; BALTIC_CHARSET; CHINESEBIG5_CHARSET; DEFAULT_CHARSET;

    EASTEUROPE_CHARSET; GB2312_CHARSET; GREEK_CHARSET; HANGUL_CHARSET; MAC_CHARSET; OEM_CHARSET; RUSSIAN_CHARSET; SHIFTJIS_CHARSET;

    SYMBOL_CHARSET; TURKISH_CHARSET。

    韓國Windows:JOHAB_CHARSET;

    中東地區(qū)Windows:HEBREW_CHARSSET; ARABIC_CHARSET

    泰國Windows:THAI_CHARSET

    OEM_CHARSET指定的字符集與操作系統(tǒng)有關(guān)。

    可以使用DEFAULT_CHARSET值來允許字體的名字和大小來充分描述邏輯字體。如果指定的字體名不存在,任何字符集的字體都可以替代指定的字體,所以應(yīng)該小心地用

DEFAULT_CHARSET來避免不期望的結(jié)果出現(xiàn)。

    操作系統(tǒng)中存在其他字符集的字體。如果一個應(yīng)用程序用一種未知字符集的字體,則應(yīng)用程序不會試圖去翻譯或解釋用那種字體寫出來的字符串。

    在字體映射過程中此參數(shù)很重要。為確保獲得一致的結(jié)果,指定一個特殊的字符集。如果在lpszFace參數(shù)中指定了一個字體名,確定fdwCharSet值與由lpszFace指定的字體字符集是否匹

配。

    fdwOutputPrecision:指定輸出精度,輸出精度義輸出與要求的字體高度、寬度、字符定位、移位、字符間距和字符類型的匹配程序,它可取下列值之一:

    OUT_CHARACTER_PRECIS;未用。

    OUT_DEFAULT_PRECIS:指定缺省的字體映射器狀態(tài)。

    OUT_DEVICE_PRECIS:指示字體映射器在當(dāng)系統(tǒng)里有多種字體使用同一個字體使用同一個名字時選擇一種設(shè)備字體。

    OUT_OUTLINE_PRCIS:在Windows NT中此值指示字體映射器從TrueType和其他基于邊框的字體中選擇。

    OUT_RASTER_PRECIS:指示字體映射器在當(dāng)系統(tǒng)里有多種字體使用同一個名字時選擇一種光柵字體。

    OUT_STRING_PRECIS:此值沒有被字全映射器使用,但是當(dāng)掃描字體被列舉時作為返回值。

    OUT_STROKE_PRECIS:在Windows NT中此值沒有被字體映射器使用,但是當(dāng)TrueType字體、其他基于邊框的字體和向量字體被列舉時,作為返回值。

    Windows 95:此值沒有被字體映射器使用,但是當(dāng)TrueType字體或向量字體被列舉時,作為返回值。

    OUT_TT_ONLY_PRECIS:指示字體映射器僅從TrueType字體中選擇,如果系統(tǒng)中沒有安裝TrueType字體,則字體映射返回缺省狀態(tài)。、

    OUT_TT_PRECIS:指示字體映射器在當(dāng)系統(tǒng)里有多種同名的字體時選擇一種TrueType字體。

    當(dāng)操作系統(tǒng)含有多種與指定名字同名的字體時,應(yīng)用程序可以使用OUT_DEVICE_PRECIS,OUT_RASTER_PRECIS和OUT_TT_PRECIS值來控制字體映射器如何選擇一種字體,例如,

如果操作系統(tǒng)含有名字Symbol的光柵和TrueType兩種字體,指定OUT_TT_PRECIS使字體映射器選擇TrueType方式。指定OUT_TT_ONLY_PRECIS使字體映射器選擇一種TrueType字體,

盡管這會給TrueType字體換一個名字。

    fdwClipPrecision;指定裁剪精度,裁剪精度定義如何裁剪部分超出裁剪區(qū)的字符,它可取一個或多個下列值:

    CLIP_DEFAULT_PRECIS:指定缺省裁剪狀態(tài)。CLIP_CHARACTER_PRECIS:未用。

    CLIP_STROKE_PRECIS:未被字體映射器使用,但是當(dāng)光柵字體、向量字體或TrueType字體被列舉時作為返回值。在Windows環(huán)境下,為保證兼容性,當(dāng)列舉字體時這個值總被返回。

    CLIP_MASK:未用。CLIP_EMBEDDED:要使用嵌入式只讀字體必須使用此標(biāo)志。

    CLIP_LH_ANGLES:當(dāng)此值被使用時,所有字體的旋轉(zhuǎn)依賴于坐標(biāo)系統(tǒng)的定位是朝左的還是朝右的。

    如果未使用此值,設(shè)備字體總是逆時針方向旋轉(zhuǎn),但其他字體的旋轉(zhuǎn)依賴于坐標(biāo)系統(tǒng)的定向。要得到更多關(guān)于坐標(biāo)系統(tǒng)定向的信息,參見參數(shù)orientation。

    CLIP_TT_ALWAYS:未用。

    fdwQuality:指向輸出質(zhì)量,輸出質(zhì)量定義GDI如何仔細(xì)地將邏輯字體屬性與實際物理字體屬性相匹配。它可取下列值之一:

    DEFAULT_QUALITY:字體的外觀不重要。

    DRAFT_QUALITY:字體外觀的重要性次于使用PROOF_QUALITY時,對GDI光柵字體,縮放比例是活動的,這意味著多種字體大小可供選擇,但質(zhì)量可能不高,如果有必要,粗體、斜體

、下劃線、strikeout字體可被綜合起來使用。

    PROOF_QUALITY:字符質(zhì)量比精確匹配邏輯字體字體屬性更重要。對GDI掃描字體,縮放比例是活動的,并選擇最接近的大小。盡管當(dāng)使用PROOF_QUALITY時,選擇字體大小并不完

全匹配,但字體的質(zhì)量很高,并沒有外觀上的變形。如果有必要,粗體、斜體、下劃線、strikeout字體可被綜合起來使用。

    fdwPitchAndFamily:指定字體間距和字體族,低端二位指定字體的字符間距,它可取下列值之一:

    DEFAULT_PITCH;FIXED_PITCH; VARIABLE_PITCH

    高端四位指定字體族,可取下列值之一:

    FF_DECORATIVE:新奇的字體,如老式英語(Old English)。FF_DONTCARE:不關(guān)心或不知道。

    FF_MDERN:筆劃寬度固定的字體,有或者無襯線。如Pica、Elite和Courier New。

    FF_ROMAN:筆劃寬度變動的字體,有襯線。如MS Serif。

    FF_SCRIPT:設(shè)計成看上去象手寫體的字體。如Script和Cursive。

    FF_SWISS:筆劃寬度變動的字體,無斜線。如MS Sans Serif。

    應(yīng)用程序可以用運算符OR將字符間距和字體族組合起來給fdwPitchAndFamily賦值。

    字體族描述一種字體的普通外觀,當(dāng)所有的精確字樣都不能使用時,可用它們來指定字體。

    lpszface:指向指定字體的字樣名的、以/0結(jié)束的字符串指針,字符串的長度不能超過32個字符(包括字符/0),函數(shù)EnumFontFamilies可用來列舉所有當(dāng)前可用字體的字樣名。

    如果lpszFace為NULL或指向一個空串,GDI使用能匹配其他屬性的第一種字體。

    返回值:如果函數(shù)調(diào)用成功,返回值是一種邏輯字體句柄;如果函數(shù)調(diào)用失敗,返回值為NULL。

    Windows NT:若想獲得更多錯誤信息,請調(diào)用GetLastError函數(shù)。

    備注:當(dāng)一種字體不再使用時,可用DeleteObject來刪除。

    為保護(hù)那些提供字體給Windows和Windows NT的賣主的版權(quán),基于Win32的應(yīng)用程序總是列出所選擇字體的準(zhǔn)確名字。由于不同的系統(tǒng)會使用不同的字體,不要認(rèn)為所選擇字體就是要

求的字體。例如,如果要求名叫Palatino的字體,但系統(tǒng)沒提供那樣一種字體,則字體映射器將會以一種不同名但有相似屬性的字體取而代之。系統(tǒng)總是將用戶選擇的字體名報告出來。

    速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支持;頭文件:wingdi.h;庫文件:gdi32.lib;Unicode:在Windows NT環(huán)境下以Unicode和ANSI

兩種方式實現(xiàn)。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    日韩人妻有码一区二区| 搡老熟女老女人一区二区| 久久中文字人妻熟女小妇| 国产日韩精品欧美综合区| 日韩三极片在线免费播放| 天海翼高清二区三区在线| 精品欧美日韩一区二区三区| 大香蕉精品视频一区二区| 免费在线观看激情小视频| 日本成人三级在线播放| 亚洲天堂一区在线播放| 精品午夜福利无人区乱码| 日韩欧美精品一区二区三区| 四季精品人妻av一区二区三区 | 国产免费成人激情视频| 色婷婷激情五月天丁香| 国产免费一区二区不卡| 在线亚洲成人中文字幕高清| 久久人人爽人人爽大片av| 国产欧美高清精品一区| 一二区不卡不卡在线观看| 久久99一本色道亚洲精品| 91偷拍视频久久精品| 色综合久久中文综合网| 在线免费视频你懂的观看| 久久亚洲成熟女人毛片| 免费观看一区二区三区黄片| 老司机亚洲精品一区二区| 国产一区在线免费国产一区| 色偷偷偷拍视频在线观看| 日韩国产亚洲欧美激情| 91后入中出内射在线| 91久久精品国产成人| 九九热视频经典在线观看| 国产不卡视频一区在线| 91亚洲国产成人久久精品麻豆| 国产不卡一区二区四区| 草草草草在线观看视频| 中文字幕精品一区二区三| 激情爱爱一区二区三区| 午夜福利国产精品不卡|