MFC原理与方法(一)

本文介绍了MFC(Microsoft Foundation Classes)的基础概念,如何在Visual Studio环境下配置,以及如何使用它进行简单的Windows应用程序开发,如绘图和输出文字。通过实例演示了OnDraw函数和TextOutW函数的应用。
摘要由CSDN通过智能技术生成


一.前言

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


二.什么是MFC?

  1. MFC全拼为(Microsoft Foundation Classes)Microsoft意思是微软,Foundation意思是基础,Classes意思是类,所以我们不难理解MFC就是微软公司创建的一个基础类库。
  2. 为什么会有这么一个基础类库嘞?我们都知道一个Windows应用程序的开发是靠代码来实现的,然而一个Windows应用程序的代码量往往是非常巨大的,如果每次开发都是靠人从0开始打代码的话,那么这样的开发方式不仅要耗费巨大的时间而且还开发效率低,还极易出错,出了错还极难纠正,这就很麻烦。那通过什么方式来提高我们的开发效率嘞?其实,大部分的Windows应用程序的基本框架都差不多一样,只是具体的实现细节不同。于是,人们就把一些基本的Windows应用程序的框架单独提取出来形成一个类库,大家只需要根据自己的需求进行简单的调用和编程就行了
  3. 所以,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 < 100; x += 20)
		{
			pDC->TextOutW(100, x, L"不想放弃!");
			Sleep(100);							//每次输出延迟100毫秒
		}
	// TODO: 在此处为本机数据添加绘制代码
}

运行结果如下:
在这里插入图片描述
以上是一些基础的MFC用法,我们可以用来进行一些简单的绘图和输出文字。还有其他很多功能,后面会继续学习的,在这里英语好的同学就比较开心,因为函数名都是英文的。。。


五.结语

芜湖!我的第二篇博客完成啦!这次没有上次那么累,上次那个内容比较多,又复杂,我还是熬了夜才完成的。相比之下这一篇就简单多了,比较好写。==但是我还是有一些做的不足的地方,我会慢慢改进,希望可以见谅!我也相信终会有一天我可以的!**emm,哈哈哈,好了,那就期待我们的下一次见面吧!谢谢大家!奥里给!!!(没有结束的哦)不说了,我去和积分决一死斗了!!!
在这里插入图片描述


声明一下:本人是大一新生,难免会出现错误,如果大家发现错误,请及时告诉我,我会及时更正,谢谢大家!)

  • 26
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 28
    评论
评论 28
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yan.阳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值