MFC原理与方法(一)

MFC原理与方法(一),第1张

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


一.前言

哈喽!好久不见呀!我们又见面了,我是不会食言的,说到做到。

见字如面,一日不见,甚是想念!哈哈,不骗你,是真的想,想你们可以看完,可以点个小小的赞和收藏以及对我的关注!好了,话不多说,我们直接来进入正题吧!这个星期我们初步学习了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编程的环境配置

同志们,接下来咱们直接上号!


这次咱们得换一个编译器,因为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,日常来一首歌吧,那就来一首《我的秘密》。

哈哈哈,好了,那就期待我们的下一次见面吧!谢谢大家!奥里给!!!(没有结束的哦)不说了,我去和积分决一死斗了!!!


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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/662065.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-18
下一篇 2022-04-18

发表评论

登录后才能评论

评论列表(0条)

保存