mfc中關於oldfontdcselectobjectfont的疑問

2021-03-24 18:17:51 字數 6735 閱讀 6568

1樓:

oldfont 是 dc 的上一個 hfont,這裡只是做一下備份;

gdi 太老啦 。。。win7 或以上使用者改用 direct2d 吧 。。。

mfc中是什麼意思

2樓:襲鸞彭頡

oldfont是dc

的上一個

hfont,這裡只是做一下備份;

gdi太老啦

。。。win7

或以上使用者改用

direct2d

吧。。。

mfc中呼叫setfont改變靜態文字的字型大小沒成功,倒是有加粗的現象

3樓:匿名使用者

setfont應該只是改變了控制元件的字型控制代碼,而不影響已經顯示的內容(影響是設定字型後)

另外font.deleteobject();//放在函式**的最後試試吧。刪除太早了,畢竟你設定是地址操作,這個也可能是問題的原因。

mfc基於對話方塊程式的dc問題

4樓:匿名使用者

初步判斷,視窗沒重繪。

在你的**後面加上:invalidate();

強制重繪。

5樓:匿名使用者

透明畫刷肯定不會顯示字型了,你用透明畫刷去寫一個字型。。肯定全白了

hfontold = selectobject(memdc, bigfont); 為什麼錯了

6樓:匿名使用者

強制轉換這樣看看cfont*hfontold=(cfont*)selectobject(memdc,bigfont)

文字問題

7樓:匿名使用者

很無奈。我在vc6.0試過了bai,du結果見**。他也不出錯,能正zhi常輸出,我就沒dao辦法了。真是專

很抱歉cpaintdc dc(this); // device context for painting

cfont font;

font.createpointfont(120,"華文屬行楷",null);

cfont *p;

dc.textout(10, 10, "華文行楷");

cdialog::onpaint();

剛學vc++遇到一個問題

8樓:匿名使用者

//在onbutton命令列下輸入

font.createfont(12,10,10,10,fw_normal,false,false,0,

ansi_charset,out_default_precis,

clip_default_precis,

default_quality,default_pitch |

ff_swiss,"");

dc.textout(10,10,"createfont 建立的字型");

m_button.setfont(&font); //設定按鈕字型

dc.selectobject(oldfont);

font.deleteobject();

font.createpointfont(90,"宋體");

dc.selectobject(&font);

dc.textout(35,35,"createpointfont 建立的字型");

dc.selectobject(oldfont);

font.deleteobject();

logfont log;

log.lfcharset = 134;

log.lfheight = -12; //高12畫素字型

log.lfweight = 1000; //粗50畫素的字型

log.loescapement = -400; //建立傾斜40°,向下傾斜用負值

strcpy(log.lffacename,"宋體");

dc.selectobject(&font);

dc.textout(50,50,"logfont建立的傾斜加粗字型");

dc.selectobject(oldfont);

font.deleteobject();

根據需要刪刪減減

9樓:匿名使用者

vc不太懂,用c++ builder師範給你看

edit->text->font="宋體"

10樓:問問天地

看看這個,你會明白的,搜尋cfont關鍵字,有詳細講怎麼設定字型的,看樣子還是比較麻煩的

mfc 輸出字串 設定字型

11樓:匿名使用者

bool createfont(

int nheight,

int nwidth,

int nescapement,

int norientation,

int nweight,

byte bitalic,

byte bunderline,

byte cstrikeout,

byte ncharset,

byte noutprecision,

byte nclipprecision,

byte nquality,

byte npitchandfamily,

lpctstr lpszfacename

);通過指定的一些特徵初始化cfont物件。下面分別介紹每個引數:

nheight:指定字型高度(邏輯單位)。有三種取值:

>0,字型對映器將高度值轉換為裝置單位,並與可用字型的字元元高度進行匹配;=0,字型對映器使用預設的高度值;<0,字型對映器將高度值轉換為裝置單位,用其絕對值與可用字型的字元高度進行匹配。nheight轉換後的絕對值不應超過16384個裝置單位。

nwidth:指定字型中字元的平均寬度(邏輯單位)。

nescapement:指定偏離垂線和顯示介面x軸之間的角度,以十分之一度為單位。偏離垂線是穿過一行文字中第一個字元和最後一個字元的直線。

norientation:指定每個字元的基線和裝置x軸之間的角度,以十分之一度為單位。

nweight:指定字型磅數(每1000點中墨點畫素數)。可取0到1000之間的任意整數值。

bitalic:指定字型是否為斜體。

bunderline:指定字型是否帶有下劃線。

bstrikeout:指定字型是否帶有刪除線。

ncharset:指定字型的字符集。預定義的字符集:

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。應用程式可以使用default_charset以允許字型名和大小完全指定邏輯字型,如果指定的字型名不存在則可能會用任意字符集的字型來代替,所以為避免不可預料的結果,應謹慎使用default_charset。

noutprecision:指定輸出精度。輸出精度定義了輸出與要求的字型高度、寬度、字元方向、移位和間距等的接近程度。它的取值及含義如下(只能取其一):

out_character_precis;未用。

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

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

out_outline_prcis:在windows nt中此值指示字型對映器從truetype和其他基於邊框的字型中選擇。

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

out_string_precis:此值沒有被字型對映器使用,但是當列舉光柵字型時它會被返回。

out_stroke_precis:沒有被字型對映器使用,但是當列舉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字型換一個名字)。

nclipprecision:指定裁剪精度。裁剪精度定義了怎樣裁剪部分超出裁剪區域的字元。它的取值及含義如下(可取一個或多個值):

clip_default_precis:指定預設裁剪狀態。

clip_character_precis:未用。

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

clip_mask:未用。

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

clip_lh_angles:當此值被使用時,所有字型的旋轉依賴於座標系統的定位是朝左的還是朝右的。如果未使用此值,裝置字型總是逆時針方向旋轉,但其他字型的旋轉依賴於座標系統的定向。

clip_tt_always:未用。

nquality:指定字型的輸出質量。輸出質量定義了gdi將邏輯字型屬性匹配到實際物理字型的細緻程度。它的各個取值及含義如下(取其一):

default_quality:字型的外觀不重要。

draft_quality:字型外觀的重要性次於使用proof_quality時,對gdi光柵字型,縮放比例是活動的,這意味著多種字型大小可供選擇,但質量可能不高,如果有必要,粗體、斜體、下劃線、strikeout字型可被綜合起來使用。

proof_quality:字元質量比精確匹配邏輯字型字型屬性更重要。對gdi掃描字型,縮放比例是活動的,並選擇最接近的大小。

儘管當使用proof_quality時,選擇字型大小並不完全匹配,但字型的質量很高,並沒有外觀上的變形。如果有必要,粗體、斜體、下劃線、strikeout字型可被綜合起來使用。

npitchandfamily:指定字型間距和字型族。低2位用來指定字型的間距,可取下列值中的一個:

default_pitch,fixed_pitch,variable_pitch。高4位指定字型族,取值及含義如下(取其一):

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將字元間距和字型族組合起來給npitchandfamily賦值。

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

lpszfacename:指定字型的字樣名的字串。此字串的長度不應超過30個字元。

windows函式enumfontfamilies可以列舉出當前所有可用字型的字樣名。如果lpszfacename為null,則gdi使用一種與裝置無關的字型。

返回值:此函式成功則返回true,否則返回false。

createfont函式初始化cfont物件後,此字型就能夠被選作任何裝置上下文的字型了。此函式並不會建立一個新的windows gdi字型,只是從gdi的物理字型中選擇了一個最匹配的字型。在建立一個邏輯字型時,大部分引數可以使用預設值,但一般情況下都會給出引數nheight和lpszfacename的指定值,如果沒有給nheight和lpszfacename引數設定取值,則建立的邏輯字型與裝置相關。

當使用createfont函式初始化一個cfont物件完成後,就能夠使用cdc::selectobject函式來為裝置上下文選擇字型了,並且還能夠在不再使用此cfont物件時刪除它。

// 下面的**演示瞭如何實現字型的空心效果

////////////////////////////////////// 應用程式主視窗的重繪函式

void cmywnd::onpaint()

MFC編輯框中游標問題,MFC 編輯框中 如何獲得游標所在位置

據我所知,你還是不要用那個updatedata函式,如果你想往編輯框裡的某個位置插入字串,你可以用setsel,然後replacesel插入字串,應該就可以了 vc6.0mfc怎麼讓編輯框裡預設顯示游標 資源編輯器中,開啟對話方塊資源,ctrl d設定控制元件順序 tab order 將編輯框設定為...

關於MFC中裝置環境物件CDC的一些淺顯的問題

1只要存在無效域就會重畫,就有wm paint endpaint 作用就是消除無效域,wm paint 訊息優先順序別很低,系統會將幾個wm paint 無效域疊加,2windows系統最常見的程式,由兩個視窗組成,一個是主視窗,一個是檢視視窗,就是記事本中間白色的部分,檢視視窗在前,蓋住了主視窗,...

在學習mfc過程中遇到了問題,在學習mfc過程中遇到了一個問題

char 可以直接轉cstring的。cstring mysend mysend strsend 一句話完成!給個比較好的網頁你吧。下次轉型就看一下這個網頁。strcpy char,cstring,sizeof char 改為 lpctstr strsend 試試 cstring str 要發的內容...