MFC學習心得 畫筆字型類

2021-06-25 21:12:52 字數 2974 閱讀 9971

在mfc中畫筆是cpen類的物件,它用來在dc上完成繪製線條的任務。所謂自定義畫筆就越是大家按照自己來建立cpen類物件。在建立了物件之後如果要使用它,則需要呼叫cdc的成員函式selectobject()用自定義的畫筆替換原有的畫筆,該函式的原型為:cpen* selectobject(cpen *ppen);其引數為想要載入的畫筆,返回值為原來畫筆的指標。下面是乙個繪製多個線條的短**。

下面是設定線條型別的一些**

void cmy9222view::ondraw(cdc* pdc)

;//定義了乙個線條型別陣列

這裡簡單說一些常用線條的型別

ps_solid     實線畫筆

ps_dash      虛線畫筆

ps_dot       點線畫筆

ps_dashdot              點劃線畫筆

ps_dashdotdot     雙點劃線畫筆

下面是對畫刷的介紹。

畫刷是cbrush類的物件,是對封閉圖形內部用顏色或圖案進行填充的工具,在使用畫刷前要建立cbrush類物件,其原型為cbrush(colorref color)和

cbrush(int style,colorref color);其中第二個函式中的style決定畫刷的樣式,color決定畫刷的顏色。

其中一些常見的style這裡說一下

hs_bdiagonal   以自左下角至右上角的四十五度斜線填充

hs_cross           以十字交叉線填充

hs_diagcross   以互相交叉的四十五度線填充

hs_fdiagonal  以自左上角至右下角的四十五度斜線填充

與使用畫筆一樣,在建立了畫刷之後,如果要是用該畫刷,則應該使用cdc的成員函式:cbrush* selectobject(cbrush *pbrush);

下面是**

void cmy9222view::ondraw(cdc* pdc)

int style=; //定義了乙個填充效果陣列

在windows中,繪圖的最終效果可以通過設定不同的繪圖模式 來修飾。設定繪圖模式的cdc成員函式為setrop2(int ndrawmode);其中,引數為繪圖模式,返回值為原來的繪圖模式。常用的繪圖模式如下所說:

r2_black        無論畫筆的顏色如何,只用黑色繪圖

r2_white       無論畫筆的顏色如何,只用白色繪圖

r2_nop          無論畫筆的顏色如何,只用無色繪圖

r2_not         用與背景色相反的顏色繪圖

r2_notcopypen   用與畫筆顏色相反的顏色繪圖

r2_copypen        用畫筆顏色繪圖

r2_xorpen        把畫筆色與背景色進行異或(xor)運算後的顏色繪圖

下面說一些關於字型的一些函式,顯示文字要用到textout(),其原型為bool textout(int x,int y,const cstring &str);

其中,引數x為文字顯示在應用程式視窗使用者區的水平位置;y為文字的垂直位置;str為要顯示的字串,它是乙個cstring類的物件。

設定文字的顏色可以使用成員函式settextcolor()來進行文字顏色的設定,其原型為irtual colorref settextcolor(colorref crcolor),其中,引數為文字顏色的rgb值,函式返回原來的顏色。colorref gettextcolor() const  為獲取當前文字顏色的函式。

virtual colorref setbkcolor(colorref crcolor)為設定當前文字的背景色。同樣的也有獲取當前文字的背景色的函式colorref getbkcolor() const;

如果需要改變文字字元之間的間隔時可以使用cdc類的成員函式:int settextcharacterextra(int ncharextra);該引數是以畫素為單位的。另外還有乙個獲取當前字元間距的函式int gettextcharacterextra() const;

另外還有一些函式可以用來設定文字的對齊方式,如 uint settextalign(uint nflags);

一些常用的引數值如ta_left為左對齊

ta_center為中間對齊

ta_right為右對齊

ta_top為頂部對齊

ta_bottom為底部對齊

ta_baseline為以基線對齊

學習心得 與 MFC檔案操作CFile 類 筆記

最近的感概是無論你現在專注的做什麼,訓練的是學習能力能快速拿下新知識的能力。專注了即投入其中了才會對其領域有乙個較深入的體會和了解。了解的是此知識領域本身,對這個知識本身的認識更加的深入,達到一定程度可上公升為經驗。體會就是感悟,對學習方法和思路的總結,總結怎麼快速和更全面及更深入的學習某種知識技能...

學習心得 python學習心得

自從來了深圳工作以後,尤其是屢屢面試碰壁以後。發現其實自己的知識面很窄,做筆試題的時候絞盡腦汁還是漏洞百出,並不是不會做,而是出現一大堆不該有的失誤。每次被問道,對資料庫了解嗎?說一大堆看起來很高階的東西 好啊,那我們寫幾個sql語句吧。馬上完蛋了,沒了手冊關鍵字都記不起。了解哪幾種指令碼語言,sh...

學習心得 我的學習心得

我是乙個已經步入中年的70後,離開校園已經20年了,因為當年的政策因素而未能圓我的大學夢,在20年的工作過程中總是因為缺少一張大學文憑而失去了很多機會,曾經也考慮過自考,但是乙個人去面對的時候總感覺心有餘而力不足。2018年3月份偶然讓我認識了尚德,原來自考還可以這樣學習。一直懷疑自己年紀大了記憶力...