资源预览内容
第1页 / 共97页
第2页 / 共97页
第3页 / 共97页
第4页 / 共97页
第5页 / 共97页
第6页 / 共97页
第7页 / 共97页
第8页 / 共97页
第9页 / 共97页
第10页 / 共97页
亲,该文档总共97页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
MFC实例教程,实例1 最简单的对话框程序,新建MFC工程,选择基本对话框,设置对话框参数,选择对话框风格,设置类名,关于对话框,从CDialog派生出来,从 CWinApp 派生的类的对象,用于 Windows 操作系统的应用程序的初始化、运行和终止,在创建窗口之前先构造该对象,MFC_Hello对话框,从CDialog派生出来,实例2 鼠标测试程序,修改静态 控件属性,修改提示信息,使用类向导添加成员函数,添加单击鼠标 左键成员函数,添加鼠标左键、右键按下代码,实例3 点鼠标游戏,修改按钮 控件属性,添加静态控件,添加编辑控件,实例4 为程序添加图标,步骤,1.新建一个MFC AppWizard(exe)工程,工程名为IconTest 2.在MFC AppWizard的Step 1步骤,选择“Dialog based”,其余的步骤全部选择默认。 3.切换到ResourceView视图,右键点击Icon,选择“import”,导入三个图标(.ico)文件,如下图:,4.找到CIconTestDlg类的构造函数,找到下面的语句: m_hIcon = AfxGetApp()-LoadIcon(IDR_MAINFRAME); 将其修改为: m_hIcon = AfxGetApp()-LoadIcon(IDI_ICON1);,5.运行程序,可以看到程序的图标已被修改成我们自己定义的图标。,6.继续回到Resource View视图,打开IDD_ICONTEST_DIALOG的设计界面,删除之前生成的文字框和按钮,重新添加一个文字框和一个按钮,如下图:,7.将按钮控件的Style中的Icon选项选中,8.找到CIconTestDlg类的OnInitDialog()函数,在其中添加下图中的语句:,9.执行程序,图标就被显示在界面上了。,实例5 三国游戏之选择武将,1.建立一个基于MFC对话框的项目“ComposedDialog”。 2.切换到Resource View视图,在左边的资源树上点右键,选择“insert”,弹出“Insert Resource”对话框,选择“Bitmap”,点“import”,导入事先准备好的位图文件。,3.设计界面:,Group Box,Combo Box,Static Text,List Box,Picture,4.右键点性别组合框,选择“property”,添加以下数据:,5.打开Class Wizard,添加以下变量:,6.在CComposedDialogDlg.cpp添加以下代码:,7.为IDC_COMBO1的CBN_SELCHANGE消息添加响应函数,如下图:,8.为CComposedDialogDlg:OnSelchangeCombo1()添加代码,如下:,9.运行代码,此时的结果如图:,10.为列表框的LBN_SELCHANGE消息添加响应函数:,10.为void CComposedDialogDlg:OnSelchangeList1()添加代码:,11.运行:,实例6 简易电子琴,1.建立一个对话框项目,界面如下:,2.通过class wizard建立以下变量:,在OnInitDialog()函数中进行初始化,代码如下:,3.对每一个CButton,对其BN_CLICKED消息建立以个响应函数,如下图:,4.音乐频率表,每个函数的代码如下:,此时,执行程序,点击不同的按钮,程序发出不同的声音。,5.为滑动条的NM_RELEASEDCAPTURE添加响应函数:,代码如下: 简易电子琴程序就这样做好了!,5.为滑动条的NM_RELEASEDCAPTURE添加响应函数:,6.思考,将电子琴完善为下列界面,根据音乐频率表试编写程序,实例7 连连看游戏,1.设计游戏主界面,放置64个按钮(可使用复制-粘贴),并将其排列整齐,2.添加变量,每个按钮定义一个关联的变量,共64个,3.切换到Resource View视图,右键点Icon,选择import,将事先准备的32个图标导入进来,另外,创建1个空图标。如下图:,4.通过手工方式在CGameTestDlg类中添加以下成员变量,5.修改构造函数,如下,6.添加消息映射:,7.在CGameTestDlg:OnInitDialog()函数中添加初始化代码(部分略去):,8.添加响应代码:,9.执行程序,程序说明: (1). CGameTestDlg:CGameTestDlg()中的代码是对成员函数进行初始化:state表示两次这次点击或上次点击;count表示目前已经找出来的相同图标的数目,初始值为0(即没有找到);icon数组存放64个图标的编号;,9.执行程序,(2). CGameTestDlg:OnInitDialog()中的代码主要对游戏状体初始化,通过调用100次随机函数,将图标顺序打乱,以实现游戏开始图标随机分布的效果。同时,将当前时间记录在beginTime变量中。,9.执行程序,(3).游戏过程中点击图标会调用CGameTestDlg:OnButton(UINT nID)函数,该函数首先改变state的值,根据其等于1还是-1来判断用户是否已点了两次,如果是点了两次,则比较这两点的图标是否相同,如果相同,则将count的值+2,同时消去这两次点击的图标。当count的值=64时,说明用户已经成功完成了游戏。,实例8 简易计算器,1.建立一个对话框项目,界面如下:,2.通过class wizard建立以下变量:,3.对每一个CButton,对其BN_CLICKED消息建立以个响应函数,如下图:,每个函数的代码如下:,简易计算器程序就这样做好了!,4.运行,5.思考,将计算器改良为以下界面,试编写程序,实例8 简易记事本,知识点: 1)菜单的使用 2)CStdioFile类的使用 3)CFont类的使用 4)CFileDialog的使用 5)CFontDialog的使用,1)菜单的使用 通过Resource View,右键点选Insert,选择menu,即可新建菜单。,2)CStdioFile类的使用 CStdioFile类继承自CFile类,可用于二进制文件或文本文件的读写。,(1)创建或打开文件 CFile file; file.Open(_T(“test.txt“),CFile:modeCreate|CFile:modeNoTruncate|CFile:modeReadWrite); 文件打开模式可组合使用,用“|”隔开,常用的有以下几种: CFile:modeCreate:以新建方式打开,如果文件不存在,新建;如果文件已存在,把该文件长度置零,即清除文件原有内容。 CFile:modeNoTruncate:以追加方式打开,如果文件存在,打开并且不将文件长度置零,如果文件不存在,会抛出异常。一般与CFile:modeCreate一起使用,则文件不存在时,新建一个文件;存在就进行追加操作。 CFile:modeReadWrite:以读写方式打开文件。 CFile:modeRead:只读。 CFile:modeWrite:只写。,(2) /写入数据 CString strValue = “Hello World!“; file.WriteString(strValue); /读取数据 CString strRead; file.ReadString(strRead);,当文件存在多行数据需要逐行读取时,可用函数BOOL CStdioFile:ReadString(CString ,3)CFont类的使用 CFont表示字体,其详细定义说明见p317页的说明。,创建字体的方法: (1)CFont:CreateFont(); (2)CFont:CreateFontIndirect(LOGFONT lf);,在Windows内部,字体是以一个名为LOGFONT的结构来表示的。 结构LOGFONT的定义如下: typedef struct tagLOGFONT / lf LONG lfHeight; LONG lfWidth; LONG lfEscapement; LONG lfOrientation; LONG lfWeight; BYTE lfItalic; BYTE lfUnderline; BYTE lfStrikeOut; BYTE lfCharSet; BYTE lfOutPrecision; BYTE lfClipPrecision; BYTE lfQuality; BYTE lfPitchAndFamily; TCHAR lfFaceNameLF_FACESIZE; LOGFONT;,4)CFileDialog的使用 (1)通过CFileDialog cfg(TRUE)实例化一个文件对话框对象 (2)通过cfg.DoModal()显示对话框; (3)通过cfg. GetPathName()得到文件信息。,5)CFontDialog的使用 (1)通过CFontDialog cfg(TRUE)实例化一个文件对话框对象 (2)通过cfg.DoModal()显示对话框; (3)通过cfg.GetCurrentFont(LOGFONT lf)得到字体信息。,
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号