MFC原理与方法(一)

您所在的位置:网站首页 mfc编程步骤 MFC原理与方法(一)

MFC原理与方法(一)

#MFC原理与方法(一)| 来源: 网络整理| 查看: 265

MFC原理与方法(一) 一.前言二.什么是MFC?三.MFC编程的环境配置四.使用MFC进行一些简单操作五.结语

一.前言

哈喽!好久不见呀!我们又见面了,我是不会食言的,说到做到。见字如面,一日不见,甚是想念!哈哈,不骗你,是真的想,想你们可以看完,可以点个小小的赞和收藏以及对我的关注!好了,话不多说,我们直接来进入正题吧!这个星期我们初步学习了MFC原理与方法,接下来我给大家介绍什么是MFC,MFC编程的环境配置以及使用MFC来做一些简单的操作。

二.什么是MFC? MFC全拼为(Microsoft Foundation Classes)Microsoft意思是微软,Foundation意思是基础,Classes意思是类,所以我们不难理解MFC就是微软公司创建的一个基础类库。为什么会有这么一个基础类库嘞?我们都知道一个Windows应用程序的开发是靠代码来实现的,然而一个Windows应用程序的代码量往往是非常巨大的,如果每次开发都是靠人从0开始打代码的话,那么这样的开发方式不仅要耗费巨大的时间而且还开发效率低,还极易出错,出了错还极难纠正,这就很麻烦。那通过什么方式来提高我们的开发效率嘞?其实,大部分的Windows应用程序的基本框架都差不多一样,只是具体的实现细节不同。于是,人们就把一些基本的Windows应用程序的框架单独提取出来形成一个类库,大家只需要根据自己的需求进行简单的调用和编程就行了。所以,MFC的本质就是一个包含了许多微软公司已经定义好的对象的类库,包含了一百多个程序开发过程中最常用的对象。MFC除了是一个类库以外,还是一个框架,在Visual C++ 中新建一个MFC的工程,开发环境会自动搭建框架,产生许多相应文件。这样的开发方式是非常简单的。 三.MFC编程的环境配置

同志们,接下来咱们直接上号! 在这里插入图片描述 Alt 这次咱们得换一个编译器,因为Microsoft Visual C++ 2010 Express(学习版)是没有MFC的,所以这次咱们得换一个高级点的编译器,咱们用Microsoft Visual Studio 2010。接下来我一步一步来教大家下载。建议使用电脑打开此页面,先点击下方的下载链接。 Visual Studio 2010下载链接. 然后,我们看到下面的页面。(注意:如果你是第一次登陆这个页面的话,是需要登录你的微软账号的,也就你电脑的Microsoft账号,登录之后需要重新点链接进入下载页面) 在这里插入图片描述 我们选择[Trial] Visual Studio Professional 2010这个编译器。注意!语言要选择Chinese-Simplified(简体中文)。然后Download。下载过程可能会很长,我们就静静的等待下载就行了,或者写几道积分题也不错,嘿嘿。下载好之后咱们在下载打开文件。之后进行以下操作。 在这里插入图片描述 然后进入安装程序,按照以下图片操作即可,安装过程有点漫长,请耐心等待。(安装完成之后,第一次打开是还有一步操作的,我忘记截图了。。。那步操作是选择编程语言,是在左下角我记得,选择C++就OK了)

在这里插入图片描述 如果你使用的是比较高版本的 Visual Studio编译器,那么你需要在编译器里的菜单栏里打开工具,然后点击获取工具和功能。进行以下操作。 在这里插入图片描述

四.使用MFC进行一些简单操作

下载好编译器之后,我们先创建一个MFC应用程序,步骤流程为,新建项目->选择MFC应用程序->再根据你的需要来设置选项。 在这里插入图片描述 创建完之后,我们会发现有好多好多文件,不同的文件有着不同的作用,我们首先从最简单的开始吧。我们先找到OnDraw()函数,我们直接在类视图里的搜索框输入OnDraw,回车,就可以找到了。我们就来先画一个圆吧。

void CMFCView::OnDraw(CDC* pDC) //要先把这里的块注释删除,释放pDC指针,通过pDC指针来调用函数 { CMFCDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; pDC->Ellipse(100,100,200,200); //Ellipse函数为画圆函数,是通过矩形的内切圆来画的,所以我们定义了两个坐标(100,100),(200,200) // TODO: 在此处为本机数据添加绘制代码 }

运行结果如下: 在这里插入图片描述 我们还可以调用TextOutW()函数来输出文字。

void CMFCView::OnDraw(CDC* pDC) { CMFCDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; pDC->Ellipse(100,100,400,400); pDC->TextOutW(200,250,L"不放弃!继续努力!"); //前面两个数为文字开始出现的坐标位置,需要注意的是要在前面的双引号输入一个大写字母L,不然编译通不过 // TODO: 在此处为本机数据添加绘制代码 }

运行结果如下: 在这里插入图片描述 我给大家一个问题,如果我把上面的Ellipse()函数和TextOutW()函数换一个位置,运行结果还会是一样的吗?通过实践,我们发现答案是不一样的,文字没有了。这是因为Ellipse()函数生成的圆是一个“实心”的圆,不是一个圆架子,所以会把生成在圆覆盖面积里的文字覆盖掉,其他图形也是一样的。除此之外,我们还可以进行一些“进阶”操作,我们可以应用循环和选择等结构来编程。例如,循环输出文字“不想放弃!”

void CMFCView::OnDraw(CDC* pDC) { CMFCDoc* pDoc = GetDocument(); ASSERT_VALID(pDoc); if (!pDoc) return; for (int x = 0; x


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3