在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月份偶然讓我認識了尚德,原來自考還可以這樣學習。一直懷疑自己年紀大了記憶力...