1 工作区、工程名及文件和类
VC在创建一个新工程的同时会同时创建一个新的工作空间,届时可以用工作空间(.dsw,工作区)打开新建的工程(dsp),因为一个工作空间可以包含多个工程(如开发Client/Server时,就需要分别定义工程)。
也可以直接新建工作区,届时再将其它已经建好的工程(.dsp)包含进来。
或者直接新建工程,选择“添加到当前工作空间”。
如创建的是一个对话框程序,则其会自动添加.h文件和.cpp文件,其中包含有继承自MFC类的声明和实现架构。
如果添加是工程名是test3,则其文件名与默认添加的类名是:
文件名:test3,对应的类名及基类:class CTest3App : public CWinApp
文件名:test3Dlg,对应的类名及基类:class CTest3Dlg : public CDialog
文件名:stdafx,用于支持MFC类库;
文件名:re,资源控件的#define声明;
CDialog前面的C表示是类的意思,atdafx是指standard application frame works。
CCmdTarget是拥有消息循环和消息处理机制的基类,在CWinThread中封装为线程,CWinApp类用于初始化每个实例。CWnd是所有窗口类的基类。
工作空间:
对于对话框程序来说,绝大部分工作是为控件映射变量、添加消息响应,如给CEdit编辑框控件添加value和control变量,给按钮控件添加单击事件响应函数等。(当然,这些类也是可以声明和实现普通数据成员和成员函数的)
2 新建派生类
除了使用各控件类默认提供的属性、方法操作以外,你也可以重载这些控件类,实现自己想要的功能,如重载CEdit类,添加一个CEditBox派生类。
(在上面对话框也是可以添加无继承关系的MFC类以外的Generic类的,菜单的新建类与ctrl+W的新建类的对话框稍有区别)
2.1 重载PreSubclassWindow()
void CEditBox::PreSubclassWindow() { SetLimitText( -1 ); //设置编辑控件可接收的最大字节数 CEdit::PreSubclassWindow(); }在CEditBox的头文件中加入以下变量定义:
COLORREF m_ForeColor; //文本颜色 COLORREF m_BackColor; //背景色 CBrushm_BkBrush; //背景刷 CFont*p_Font; //字体指针 int m_FontSize; //字体大小(1/10点) CString m_FontName; //字体名在CEditBox的构造函数中设置它们的初值:
CEditBox::CEditBox() { m_ForeColor = RGB(0,0,0); //文字颜色(黑) m_BackColor = RGB(255,255,255); //文字背景色(白) m_BkBru(m_BackColor); //背景刷 p_Font = NULL; //字体指针 }在CEditBox的析构函数中回收创建的字体资源:
CEditBox::~CEditBox() { if( p_Font ) delete p_Font; //回收字体资源 }声明和实现成员函数
//设置字体 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,先为控件关联CTestDlg类的CEdit类(control,不是value),然后在头文件中修改类的名称CEdit为CEditBox:
CEditBox m_editc1;
利用控件的消息响应函数通过派生类对象去响应上述的成员函数:
void CTestDlg::OnButton1() { m_edi(RGB(255,255,255)); m_edi(522,_T("宋体")); }3 添加Generic类
“插入”菜单→类→新建:
此时添加的类的基本框架就是普通类(无派生关系,无基类)。
4 在工程中插入文件
可以直接新建文件添加到工程中:
在上述的新建类添加的头文件和源文件中除了默认添加的类声明和实现以外,还可以添加结构体,不隶属于类的函数声明。如果不想通过类的成员函数去实现某些操作,而是想通过普通函数去实现,合适的方法还是直接新建.h头文件.cpp源文件来实现普通函数,这样在类的成员函数或消息响应函数中通过头文件包含或extern声明也可以调用这些普通函数。(属于类的成员属性或成员函数通过类的指针或实例调用,而不属于类的全局变量和函数则直接调用,当然都要包含有声明类或全局函数的头文件)
-End-
1.《vc如何更改控件属性》援引自互联网,旨在传递更多网络信息知识,仅代表作者本人观点,与本网站无关,侵删请联系页脚下方联系方式。
2.《vc如何更改控件属性》仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证。
3.文章转载时请保留本站内容来源地址,https://www.lu-xu.com/keji/3217986.html