最近,因為工作比較緊張乙個月都沒有寫文章了。由於工作的需要我自己封裝幾個基本控制項,有按鈕、進度條、列表框、靜態文字域、動態文字域、時鐘、對話方塊等基本控制項。
下面我們來解釋一下文字域(靜態文字)的封裝實現,文字域包括以下幾個部分:
1、字型的大小
2、字型顏色
3、字型顯示的區域
4、文字域的背景
現在我們搞清楚了文字包括以上部分,就可以開始封裝文字控制項。
首先,在**定義乙個文字屬性結構體:
namespace text;}
再定義乙個文字視窗屬性結構體:
namespace textwnd;}
有了上面兩個結構體我們就可以通過我編寫的文字框來顯示我們想要的字型。在這裡先教大家怎麼使用我封裝的文字類,之後我再把**列出來。
//txtpro
text::property txtpro;//
定義文字屬性物件
txtpro.rcwndpos= createrect(0,0,215,15);
txtpro.crbkcolor= rgb(0,255,0);
txtpro.crtextcolor = rgb(255,255,255);
txtpro.ipointsize= 16;
txtpro.iweight= 600;
txtpro.strtext= text("text");;
txtpro.st***cename = text("
新宋體");
txtpro.ibkmode= transparent;
txtpro.uformat= dt_center|dt_vcenter|dt_singleline|dt_end_ellipsis ;
txtpro.bstrikeout= false;
txtpro.bunderline= false;
txtpro.bitalic= false;
//txtwndpro
textwnd::property txtwndpro; //
定義文字視窗屬性物件
txtwndpro.rcdrawposition = createrect(250,100,550,200);
txtwndpro.protext = txtpro;
txtwndpro.protext.rcwndpos = createrect(0,0,300,100);
txtwndpro.protext.ipointsize = 40;
txtwndpro.protext.iweight = 800;
ctextwnd txtwnd; //
定義文字視窗物件
txtwnd.setproperty(txtwndpro);//
設定屬性 //
完成了以上步驟下面只要通過下面一步就可以看到乙個文字框了
txtwnd.create(
父視窗指標,text("文字框"));//建立文字視窗
//要改變文字內容可以呼叫:
txtwnd. settext(text("
填寫你要顯示的文字")); //
返回文字
tstring strtext = txtwnd.gettext();
//改變顯示的位置
rect rcpos =;
txtwnd.
settextposition(rcpos);
實現源**如下:
//textwnd.h
//textwnd.cpp
eVC下自繪按鈕實現
按鈕這個控制項在軟體中使用是非常廣泛的,特別是基於mfc開發,按鈕提供了很好的便捷。但是在evc下的按鈕顯示效果是非常土的,且背景顏色不好改。如果裁系統的時候將xp風格裁進去的話,預設按鈕效果會好一些,但是背景顏色不好控制,在ce平台下,沒有滑鼠是很正常的,帶xp風格的ce系統按鈕提示不夠明顯,這個...
自繪GroupBox控制項
下面顯示的是效果圖 然後是 其中有一些解釋 using system using system.collections.generic using system.componentmodel using system.diagnostics using system.text using syste...
MFC自繪控制項
1.c 中drawitem 函式不被呼叫的問題 自繪乙個cmybutton的時候,在drawitem 中改變了button的顏色,但是在程式執行時,drawitem 函式並沒有被執行,原因在於按鈕的型別並不是bs ownerdraw,所以我們需要把它改為 所有者繪製 解決方法 可以過載乙個presu...