1 工作區(qū)、工程名及文件和類
VC在創(chuàng)建一個新工程的同時會同時創(chuàng)建一個新的工作空間,屆時可以用工作空間(.dsw,工作區(qū))打開新建的工程(dsp),因為一個工作空間可以包含多個工程(如開發(fā)Client/Server時,就需要分別定義工程)。
也可以直接新建工作區(qū),屆時再將其它已經(jīng)建好的工程(.dsp)包含進來。
或者直接新建工程,選擇“添加到當前工作空間”。
如創(chuàng)建的是一個對話框程序,則其會自動添加.h文件和.cpp文件,其中包含有繼承自MFC類的聲明和實現(xiàn)架構(gòu)。
如果添加是工程名是test3,則其文件名與默認添加的類名是:
文件名:test3,對應的類名及基類:class CTest3App : public CWinApp
文件名:test3Dlg,對應的類名及基類:class CTest3Dlg : public CDialog
文件名:stdafx,用于支持MFC類庫;
文件名:re,資源控件的#define聲明;
CDialog前面的C表示是類的意思,atdafx是指standard application frame works。
CCmdTarget是擁有消息循環(huán)和消息處理機制的基類,在CWinThread中封裝為線程,CWinApp類用于初始化每個實例。CWnd是所有窗口類的基類。
工作空間:
對于對話框程序來說,絕大部分工作是為控件映射變量、添加消息響應,如給CEdit編輯框控件添加value和control變量,給按鈕控件添加單擊事件響應函數(shù)等。(當然,這些類也是可以聲明和實現(xiàn)普通數(shù)據(jù)成員和成員函數(shù)的)
2 新建派生類
除了使用各控件類默認提供的屬性、方法操作以外,你也可以重載這些控件類,實現(xiàn)自己想要的功能,如重載CEdit類,添加一個CEditBox派生類。
(在上面對話框也是可以添加無繼承關系的MFC類以外的Generic類的,菜單的新建類與ctrl+W的新建類的對話框稍有區(qū)別)
2.1 重載PreSubclassWindow()
void CEditBox::PreSubclassWindow() { SetLimitText( -1 ); //設置編輯控件可接收的最大字節(jié)數(shù) CEdit::PreSubclassWindow(); }在CEditBox的頭文件中加入以下變量定義:
COLORREF m_ForeColor; //文本顏色 COLORREF m_BackColor; //背景色 CBrushm_BkBrush; //背景刷 CFont*p_Font; //字體指針 int m_FontSize; //字體大小(1/10點) CString m_FontName; //字體名在CEditBox的構(gòu)造函數(shù)中設置它們的初值:
CEditBox::CEditBox() { m_ForeColor = RGB(0,0,0); //文字顏色(黑) m_BackColor = RGB(255,255,255); //文字背景色(白) m_BkBru(m_BackColor); //背景刷 p_Font = NULL; //字體指針 }在CEditBox的析構(gòu)函數(shù)中回收創(chuàng)建的字體資源:
CEditBox::~CEditBox() { if( p_Font ) delete p_Font; //回收字體資源 }聲明和實現(xiàn)成員函數(shù)
//設置字體 void CEditBox::SetTextFont(int FontSize,LPCTSTR FontName) { if ( p_Font ) delete p_Font; p_Font = new CFont; p_Font->CreatePointFont( FontSize, FontName ); SetFont( p_Font ); m_FontSize = FontSize; m_FontName = FontName; }為編輯框控件添加CEditBox類變量:
添加一個編輯框,在加入#include "Edi;,如果是VC6,先為控件關聯(lián)CTestDlg類的CEdit類(control,不是value),然后在頭文件中修改類的名稱CEdit為CEditBox:
CEditBox m_editc1;
利用控件的消息響應函數(shù)通過派生類對象去響應上述的成員函數(shù):
void CTestDlg::OnButton1() { m_edi(RGB(255,255,255)); m_edi(522,_T("宋體")); }3 添加Generic類
“插入”菜單→類→新建:
此時添加的類的基本框架就是普通類(無派生關系,無基類)。
4 在工程中插入文件
可以直接新建文件添加到工程中:
在上述的新建類添加的頭文件和源文件中除了默認添加的類聲明和實現(xiàn)以外,還可以添加結(jié)構(gòu)體,不隸屬于類的函數(shù)聲明。如果不想通過類的成員函數(shù)去實現(xiàn)某些操作,而是想通過普通函數(shù)去實現(xiàn),合適的方法還是直接新建.h頭文件.cpp源文件來實現(xiàn)普通函數(shù),這樣在類的成員函數(shù)或消息響應函數(shù)中通過頭文件包含或extern聲明也可以調(diào)用這些普通函數(shù)。(屬于類的成員屬性或成員函數(shù)通過類的指針或?qū)嵗{(diào)用,而不屬于類的全局變量和函數(shù)則直接調(diào)用,當然都要包含有聲明類或全局函數(shù)的頭文件)
-End-
1.《vc如何更改控件屬性》援引自互聯(lián)網(wǎng),旨在傳遞更多網(wǎng)絡信息知識,僅代表作者本人觀點,與本網(wǎng)站無關,侵刪請聯(lián)系頁腳下方聯(lián)系方式。
2.《vc如何更改控件屬性》僅供讀者參考,本網(wǎng)站未對該內(nèi)容進行證實,對其原創(chuàng)性、真實性、完整性、及時性不作任何保證。
3.文章轉(zhuǎn)載時請保留本站內(nèi)容來源地址,http://f99ss.com/keji/3217986.html