中商华兴建设有限公司网站,wordpress移动端适配,wordpress实现网站勋章功能,做网站如何寻找客源前言#xff1a;因为接手了CMFC的程序#xff0c;所以需要对MFC编程方面有所了解。 C之MFC简单入门 MFC相关的概念MFCWIN32QT MFC项目基本操作MFC项目创建MFC项目文件解读界面和代码数据交互——加法器 MFC相关的概念
MFC
MFC#xff08;Microsoft Foundation Classes微软…前言因为接手了CMFC的程序所以需要对MFC编程方面有所了解。 C之MFC简单入门 MFC相关的概念MFCWIN32QT MFC项目基本操作MFC项目创建MFC项目文件解读界面和代码数据交互——加法器 MFC相关的概念
MFC
MFCMicrosoft Foundation Classes微软基础类库微软公司提供的一个类库以C类的形式封装了Windows API并且包含一个应用程序框架减少应用程序开发人员的工作量。
WIN32
WIN32程序和MFC程序生成的都是Windows应用程序。
WIN32开发是windows下的最基本的编程方式用Window提供的APIApplication Programming Interface为Window编写应用程序。
MFC封装了WindowsAPI也相当于对WIN32封装。比起WIN32来说MFC应用程序开发工作量简化了不少。但由于MFC是封装了Win32编程所以在效率和灵活性上肯定没有Win32编程好。此外WIN32开发是面向过程的程序而MFC开发则是面向对象。
QT
MFC和QT两者都是用于C图形用户界面应用程序。
QT跨平台C图形用户界面应用程序开发框架可以开发GUI程序也可以非GUI。QT是面向对象编程的框架使用特殊的代码生成扩展称为元对象编译器(Meta Object Compiler, moc)以及一些宏Qt很容易扩展并且允许真正地组件编程。
MFC和QT的区别
跨平台方面QT跨平台可以在Windows、Linux、Mac等多平台开发MFC因为是封装Windows API所以只能用于Windows平台。GUI界面方面QT做GUI开发比MFC好而且支持CSS界面设计更加方便和美观。程序运行效率方面MFC比QT高因为MFC是浅层封装而且VC对Windows进行了针对性优化所以性能比较好。不过现在主流计算机系统的配置上来了这点性能差别基本不介意。发展上来说QT一直在更新而MFC在很多年前就已经停止更新了。不过MFC还是被保留了下来因为过去很多软件还是用MFC开发用户量还是比较大重写工作量无法估计所以短时间内QT还很难撼动MFC地位。设计上来说MFC是伪对象而QT是真对象。MFC本质是访问包装起来C语言编写的Windows API还是事件驱动的架构。而QT则是用C编写的是精心设计的卖你想对象在命名继承类的组织等方面保持了优秀的一致性代码写起来比较优雅。创建界面上MFC无法创建大小动态可变的子窗口必须用代码来更改软件国际化麻烦需要对每个语言的版本重新修改软件而QT有强大的layout机制。文档帮助上MFC提供了帮助文章MSDN需要单独付费而且还非常庞大链接设计也一般很难通过一个类跳转到相关的类。而QT帮助文档设计非常优秀只有18M。
MFC项目基本操作
MFC项目创建
点击VS新建一个MFC项目通常会有四个引用程序类型单个文档、多个文档、基于对话框以及多个顶层文档不常用。 单个文档只有一个窗口同一时刻只能操作一个文档例如记事本。 多个文档可以有多个子窗口允许同时操作多个文档例如Notepad。 基于对话框没有菜单、工具栏及状态栏也不能处理文档。
MFC项目文件解读
创建了一个基于对话框的项目。 头文件存放.h后缀的头文件。 源文件存放.cpp后缀的文件。 资源文件存放mfc界面相关的资源文件。
pch预编译文件可以把自己需要预编译的内容放入。预编译是程序正式编译前做一些代码文本的替换工作这样调用这段代码时候就不需要进行调用的入栈出栈节省时间通常针对那种改动不大的代码。 targetver.h定义程序运行的环境。如限制程序只能在XP下运行限制程序在只能在Vin7下运行或限制程序只能在XP以上系统运行。 Resource.h就是资源文件中.rc后缀文件的头文件。 资源文件ico是图标rc和rc2是mfc界面的资源文件指向同一个资源。但是rc2可以可视化编辑而rc需要代码手工编辑。双击rc2后缀文件然后找到Dialog文件下DIALOG后缀的的双击即可查看对应可视化编辑的界面。 MFCApplication1该类继承CWinApp封装了关于程序流程的操作。相当于整个程序的主程序程序主入口其实也是在这里头。 MFCApplication1Dlg该类继承CDialogEx封装了关于对话框窗口的操作。也是此应用程序运行后控制对话框界面的程序部分。
界面和代码数据交互——加法器
第一步编辑界面。 添加一个静态文本框Static Text用来显示加法结果这个是用户没有办法修改的。 添加两个个编辑框Edit Control用来交互让用户输入输入两个要相加的数字。 添加一个按钮Button用来确认交互确认是否要相加。 控件右键选择“属性”对“描述内容”进行修改得到下图。 第二步为控件添加变量。 对静态文本框Static Text和编辑框Edit Control右键选择“添加变量”然后注意设置类型、名称和变量类型。 注意命名规则类的成员变量名一般以m_打头以标识它是一个成员变量。 注意文本显示Static Text的属性ID改为IDC_TEXT不然无法修改而且是控件控制。 第三步为button添加函数响应。 四种方法 Class Wizard类导向添加按钮右键类导向。对象ID选中自己要的按钮ID消息为函数处理类型选择BN_CLICKED然后添加处理程序。Add Event Handler实践处理程序添加消息处理函数默认就是BN_CLICKED。属性视图“闪电”图标点击就可以直接加入了控件事件了。双击按钮控件双击后会自动添加消息处理函数并跳转到代码部分。
// 加法按钮响应函数
void CMFCApplication1Dlg::OnBnClickedButton1()
{//更新m_inputAm_inputB获取界面输入的值UpdateData(true);//进行加法int a,b,c;a m_inputA;b m_inputB;c a b;//结果显示CString str1,str2;str1 结果;str2.Format(L%d, c);m_textShow.SetWindowTextW(str1str2);
}第四部添加一个标题。 找到OnInitDialog()函数部分添加上自己想要的标题代码。
CString str;
str ADD;
SetWindowText(str);结果