1. 程式人生 > >更改static字型大小和顏色

更改static字型大小和顏色

1. 改變CStatic字型大小

    1.1 在主類中定義CFont物件

    1.2 給CStatic建立ctrl型變數

    1.3 在主類Initial函式中用CFont設定大小

    還可以省去步驟1.1,在initial函式中自己建立CFont物件,然後用CreateFont建立字型:

    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是字型的粗細。
bItalic是字型是否斜體。
bUnderline是字型是否有下劃線。
bStrikeOut是字型是否有刪除線。
iCharSet是字型使用的字符集。
iOutPrecision是指定如何選擇合適的字型。
iClipPrecision是用來確定裁剪的精度。
iQuality是怎麼樣跟選擇的字型相符合。
iPitchAndFamily是間距標誌和屬性標誌。
pszFaceName是字型的名稱。

引數:

    nHeight:指定字型的字元單元或字元的邏輯單位高度,字元的高度值(也被稱為em高度)是指字元單元高度值減去內部標頭值。字型對映器以如下方式解釋nHeight指定的值,各值含義

為:

    >0:字型對映器轉換這個值以裝置單位,並和已有字型的單元高度相匹配。

    0:字型對映器轉換在選擇匹配時用一個預設的高度值。

    <0:字型對映器轉換這個值到裝置單位,並將它的絕對值和已有字型的字元高度相匹配。

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

    此對映當字型第一次被使用時發生。

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

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

    nWidth:指定所要求字型的字元的邏輯單位的平均寬度。如果此值為0,字型對映器選擇一個closest match值,closest match值是由比較當前裝置的特徵係數與可使用字型的數字化特徵

係數之差的絕對值而確定的。

    nEscapement:指定移位向量和裝置X軸之間的一個角度,以十分之一度為單位。移位向量平行於正文行的基線。

    Windows NT:當圖形裝置設定為GM_ADVANCED時,可以不依賴字串的字元的定位角而指定字串的移位角。

    當圖形模式被設定為GM_COMPATIBLE時,nEscapement同時指定移位角和定位角,可以設定nEscapement和nOrientation為相同的值。

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

    nOrientation:指定每個字元的基線和裝置X軸之間的角度。

    FnWeight:在0到1000之間指定字型的權值,如400表示標準體,700表示黑(粗)體,如果此值為0,則使用預設的權值。

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

    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:如果設定為TRUE則指定斜體。

    fdwUnderline:如果設定為TRUE,則指定加下劃線的字全。

    fdwStrikeOut:如果設定為TRUE,則strikeout指定字型。

    fdwCharSet:指定字符集,下列值是預定義的:

    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;

    中東地區Windows:HEBREW_CHARSSET; ARABIC_CHARSET

    泰國Windows:THAI_CHARSET

    OEM_CHARSET指定的字符集與作業系統有關。

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

DEFAULT_CHARSET來避免不期望的結果出現。

    作業系統中存在其他字符集的字型。如果一個應用程式用一種未知字符集的字型,則應用程式不會試圖去翻譯或解釋用那種字型寫出來的字串。

    在字型對映過程中此引數很重要。為確保獲得一致的結果,指定一個特殊的字符集。如果在lpszFace引數中指定了一個字型名,確定fdwCharSet值與由lpszFace指定的字型字符集是否匹

配。

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

    OUT_CHARACTER_PRECIS;未用。

    OUT_DEFAULT_PRECIS:指定預設的字型對映器狀態。

    OUT_DEVICE_PRECIS:指示字型對映器在當系統裡有多種字型使用同一個字型使用同一個名字時選擇一種裝置字型。

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

    OUT_RASTER_PRECIS:指示字型對映器在當系統裡有多種字型使用同一個名字時選擇一種光柵字型。

    OUT_STRING_PRECIS:此值沒有被字全對映器使用,但是當掃描字型被列舉時作為返回值。

    OUT_STROKE_PRECIS:在Windows NT中此值沒有被字型對映器使用,但是當TrueType字型、其他基於邊框的字型和向量字型被列舉時,作為返回值。

    Windows 95:此值沒有被字型對映器使用,但是當TrueType字型或向量字型被列舉時,作為返回值。

    OUT_TT_ONLY_PRECIS:指示字型對映器僅從TrueType字型中選擇,如果系統中沒有安裝TrueType字型,則字型對映返回預設狀態。、

    OUT_TT_PRECIS:指示字型對映器在當系統裡有多種同名的字型時選擇一種TrueType字型。

    當作業系統含有多種與指定名字同名的字型時,應用程式可以使用OUT_DEVICE_PRECIS,OUT_RASTER_PRECIS和OUT_TT_PRECIS值來控制字型對映器如何選擇一種字型,例如,

如果作業系統含有名字Symbol的光柵和TrueType兩種字型,指定OUT_TT_PRECIS使字型對映器選擇TrueType方式。指定OUT_TT_ONLY_PRECIS使字型對映器選擇一種TrueType字型,

儘管這會給TrueType字型換一個名字。

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

    CLIP_DEFAULT_PRECIS:指定預設裁剪狀態。CLIP_CHARACTER_PRECIS:未用。

    CLIP_STROKE_PRECIS:未被字型對映器使用,但是當光柵字型、向量字型或TrueType字型被列舉時作為返回值。在Windows環境下,為保證相容性,當列舉字型時這個值總被返回。

    CLIP_MASK:未用。CLIP_EMBEDDED:要使用嵌入式只讀字型必須使用此標誌。

    CLIP_LH_ANGLES:當此值被使用時,所有字型的旋轉依賴於座標系統的定位是朝左的還是朝右的。

    如果未使用此值,裝置字型總是逆時針方向旋轉,但其他字型的旋轉依賴於座標系統的定向。要得到更多關於座標系統定向的資訊,參見引數orientation。

    CLIP_TT_ALWAYS:未用。

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

    DEFAULT_QUALITY:字型的外觀不重要。

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

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

    PROOF_QUALITY:字元質量比精確匹配邏輯字型字型屬性更重要。對GDI掃描字型,縮放比例是活動的,並選擇最接近的大小。儘管當使用PROOF_QUALITY時,選擇字型大小並不完

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

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

    DEFAULT_PITCH;FIXED_PITCH; VARIABLE_PITCH

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

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

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

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

    FF_SCRIPT:設計成看上去象手寫體的字型。如Script和Cursive。

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

    應用程式可以用運算子OR將字元間距和字型族組合起來給fdwPitchAndFamily賦值。

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

    lpszface:指向指定字型的字樣名的、以/0結束的字串指標,字串的長度不能超過32個字元(包括字元/0),函式EnumFontFamilies可用來列舉所有當前可用字型的字樣名。

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

    返回值:如果函式呼叫成功,返回值是一種邏輯字型控制代碼;如果函式呼叫失敗,返回值為NULL。

    Windows NT:若想獲得更多錯誤資訊,請呼叫GetLastError函式。

    備註:當一種字型不再使用時,可用DeleteObject來刪除。

    為保護那些提供字型給Windows和Windows NT的賣主的版權,基於Win32的應用程式總是列出所選擇字型的準確名字。由於不同的系統會使用不同的字型,不要認為所選擇字型就是要

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

    速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:不支援;標頭檔案:wingdi.h;庫檔案:gdi32.lib;Unicode:在Windows NT環境下以Unicode和ANSI

兩種方式實現。

2.  設定CStatic顏色

     2.1 在對應類下新增WM_CTLCOLOR相應函式

    2.2 在對應的OnCtlColor函式中新增如下程式碼:

更改背景顏色: pDC->SetBkColor(RGB(0,0,255)); 

相關推薦

更改static字型大小顏色

1. 改變CStatic字型大小     1.1 在主類中定義CFont物件     1.2 給CStatic建立ctrl型變數     1.3 在主類Initial函式中用CFont設定大小     還可以省去步驟1.1,在initial函式中自己建立CFont

android 更改TextView中任意位置字型大小顏色

這裡介紹兩種方法,一種是Spannable,一種是Html.fromHtml(通過html標籤來改變),實際中看您使用哪種方便選擇使用即可 1.Html.fromHtml的使用 TextView t

TabLayout選中更改標籤字型大小顏色

由於最近要使用TabLayout載入頂部導航欄,但是產品需求是將我們選中的標籤變大~~馬磊皮,老老實實的不好麼~ ,沒辦法,該做還是得做,上網找了一下,發現TabLayout中除了XML中可以設定字型大小之外,其他沒有啥API能更改 字型大小,, 這個是在XML中設定字型大小,但是我們

mfc怎麼動態載入時間以及改變字型大小顏色

第一次寫  留著備份 以後可能還會用到 動態載入時間 1.在OnInitDialog() 初始化函式中加入 SetTimer(1,1000,NULL); 2.增加訊息函式 OnTimer(UINT nIDEvent)  增加以下函式 CTime

iOS開發之設定導航欄標題的字型大小顏色

方法一:自定義檢視。 UILabel *titleLabel = [[UILabel alloc] initWithFrame:CGRectMake(0, 0, 200, 44)];

Android 一個TextView中設定文字不同字型大小顏色的最完整方法

在做專案的時候,經常會遇到過一行文字有兩種顏色。有時候直接會想到用多個TextView來實現。今天就介紹一下更為簡單的方法,用一個TextView實現。 效果: 這幾個都實現了一行字有不同顏色,還有兩個字型大小也不一樣,我們下邊一一介紹。 首先xml程

iOS WKWebView如何載入Html程式碼? WKWebView如何修改字型大小顏色?

1.載入Html程式碼使用:NSString *htmlString = @“ <p> \U770b\U89c1\U5c31\U4e0a\Uff0c\U4e0d\U8981\U6002&l

MFC靜態文字控制元件如何設定字型--大小顏色及背景色

方法一:通過構建相應字型 CFont font; font.CreateFont(10,10,0,0,FW_BLACK,FALSE,FALSE, FALSE,GB2312_CHARSET,OUT_DEFAULT_PRECIS, CLIP_DEFAULT_PRECIS,DEF

c# richtextbox修改字型大小顏色

一開始:this.richTextBox1.Text = "歡迎"; this.richTextBox1.SelectAll(); this.richText

android 利用一個TextView實現兩行並且每行的字型大小顏色各異

這個功能主要是利用 SpannableString來實現的。先來看看效果圖: 具體步驟如下: 1.在res/values/styles.xml檔案中定義兩個顯示文字的style,分別給TextView中的第一行和第二行使用。程式碼如下: <st

python開發平臺PyCharm最好的一種編輯環境配置(字型大小顏色)

  python 的開發平臺PyCharm是一款非常人性化的IDE,得到非常多pythone開發者的認可和使用。下面分享一款個人非常喜愛的使用環境配置,如圖所示:   當然,你也可以有自己喜歡

iOS UILabel改變指定字型大小顏色

改變指定字型的顏色,range:NSMakeRange(4, 4)改變字型的位置和個數 self.enrollLabel  self.person_name 為建立UILabel的物件名字

iOS11 UISegmentControl同時設定字型大小顏色不起使用的解決方案

以前設定UISegmentControl字型大小和顏色,程式碼我是這樣寫的: //設定正常狀態和選中狀態下的字型大小 [goodsSementControl setTitleTextAt

WTL環境中CEdit或Cstatic控制元件中修改字型大小顏色

      本文主要介紹只讀模式的下的CEdit控制元件和CStatic控制元件的字型的大小和顏色的修改,編輯模式下的CEdit控制元件的原理是一樣的只是訊息變了。       1. 修改字型顏色         只讀模式下的CEdit控制元件和CSataic控制元件通過傳送

iOS 富文字label字型大小顏色

實現:最初實現的時候想到了用兩個Label,來實現,第一個顯示¥4000,設定一個字型,第二個顯示/月,設定另一個字型.這樣就能實現這個效果了,但是最後想一想還是用富文字比較好,順便可以學習一下. //先建立一個label: -(UILabel *)pri

android 一個 textview 設定不同的字型大小顏色

在實際應用中,需要將一個字串已不同的顏色,字型顯示出來。當然完全可以通過不同textview拼接出來。也可以通過一個textview來展示。 步驟如下:      1.定義不同style . 不妨如下定義2個style <style name="s

日常知識總結之-修改字型大小顏色

//修改價格字型 NSMutableAttributedString *textColor = [[NSMutableAttributedString alloc]initWithSt

iOS 修改TextField中的placeholder字型大小顏色

1.在iOS6.0之前提供的attributedPlaceholder屬性:textField.placeholder = @"請輸入使用者名稱!"; [textField setValue:[UIC

eclipse設定背景顏色字型大小、行號、XML字型大小顏色等操作

1、選單Window->Praferences 2、行號、背景顏色 3、字型顏色設定,選單Window->Praferences,將一些字型為黑色的設定為別的顏色 4、編譯區字型大小

修改UINavigationBar (導航欄)上NavigationBarItem 的字型大小顏色的使用方法

//建立一個左邊按鈕 UIBarButtonItem *leftButton = [[UIBarButtonItemalloc] initWithTitle:@"<"style:UIBarButtonItemStylePlaintarget:selfaction