MFC编程实例1
MFC编程示例参考

1、变更控件变量
设置编辑框内 容的长度
49
头文件中的生成代码
// Dialog Data //{{AFX_DATA(CStep1Dlg) enum { IDD = IDD_STEP1_DIALOG }; CString m_edit; //}}AFX_DATA
50
构造函数中的生成代码
CStep1Dlg::CStep1Dlg(CWnd* pParent /*=NULL*/) : CDialog(CStep1Dlg::IDD, pParent) { //{{AFX_DATA_INIT(CStep1Dlg) m_edit = _T(""); //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); }
}
43
运行
有文字,变灰
44
3、编辑框的控制
对话框数据交换机制 DDX(Dialog Data exchange),用于控 件初始化和获取用户输入的数据。 对话框数据验证DDV(Dialog data validation),用于对话框中输入数据的合 法性检验。
用户只关心编辑框的内容,不 关心编辑框的属性,可以使用内容 相关变量操作编辑框。
所有和控件映射的变 量均在此
41
数据交换函数中的生成代码
系统自动添加代码如下
void CStep1Dlg::DoDataExchange(CDataExchange* 映射变量 pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CStep1Dlg) DDX_Control(pDX, IDC_EDIT1, m_edit); 控件ID //}}AFX_DATA_MAP }
mfc 简单例程

mfc 简单例程摘要:1.MFC 简单例程概述2.MFC 简单例程的实现步骤3.MFC 简单例程的应用示例正文:一、MFC 简单例程概述MFC(Microsoft Foundation Class)是微软提供的一个用于开发Windows 应用程序的类库。
它包含了大量预定义的类和函数,可以帮助开发者快速、简便地创建Windows 应用程序。
MFC 简单例程是指使用MFC 类库创建的一个简单的程序实例,通常用于演示MFC 的基本功能和操作方法。
二、MFC 简单例程的实现步骤1.打开Visual Studio,创建一个新的MFC 应用程序项目。
2.在Visual Studio 中,选择“File”>“New”>“MFC AppWizard”,然后点击“Next”。
3.在“AppWizard”对话框中,选择“A simple MFC application”,然后点击“Next”。
4.输入项目名称、选择项目位置,然后点击“Finish”。
5.在“Solution Explorer”窗口中,双击“MainFrame.cpp”文件,打开代码编辑器。
6.在代码编辑器中,可以编写MFC 简单例程的代码。
例如,可以创建一个窗口,添加按钮和文本框等控件,以及实现按钮点击事件的处理函数等。
三、MFC 简单例程的应用示例以下是一个MFC 简单例程的应用示例,它实现了一个简单的计算器功能:1.创建一个MFC 应用程序项目,并添加一个名为“Calculator”的窗口。
2.在“Calculator”窗口中,添加两个文本框(Text1 和Text2),用于输入两个数字;添加一个按钮(Button1),用于执行计算操作。
3.为“Button1”按钮添加一个点击事件处理函数(ON_BN_CLICKED)。
在函数中,编写计算两个文本框中数字之和的代码,并将结果显示在文本框(Text1)中。
4.编译并运行程序,可以看到一个简单的计算器界面。
MFC编程基础案例

12/19/2013
WINDOWS程序开发 讲师:鲍钰
11
增加如下消息处理函数
12/19/2013
WINDOWS程序开发 讲师:鲍钰
12
继续添加如下功能
1.鼠标左键按下修改光标为IDC_CURSOR1 2.修改程序的大图标为IDI_ICON1 3.键盘按下VK_ESCAPE,对消息框的回馈进行处理。 4.创建窗口时候Create函数载入菜单资源IDR_MENU1。 5.鼠标移动时,坐标的获取。 6.鼠标左键按下时候,点击区域的判定。 7. CMyFrame 私有变量的添加。 8. 画笔画刷的使用,及图形的绘制。 9. 窗口创建前,最大化按钮的取消。 10. 鼠标右键按下时,动态修改窗口小图标和标题。
}
12/19/2013
WINDOWS程序开发 讲师:鲍钰
8
ID_APP_EXIT是特殊ID,不需 要任何代码,执行退出。
12/19/2013
WINDOWS程序开发 讲师:鲍钰
9
12/19/2013
WINDOWS程序开发 讲师:鲍钰
10
void CMyFrame::OnLButtonDown(UINT nFlags, CPoint point) { // TODO: Add your message handler code here and/or call default MessageBeep (16); CFrameWnd::OnLButtonDown(nFlags, point); }
12/19/2013
WINDOWS程序开发 讲师:鲍钰
15
继续添加如下功能
3.键盘按下VK_ESCAPE,对消息框的回馈进行处理。 void CMyFrame::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) { // TODO: Add your message handler code here and/or call default if (nChar==VK_ESCAPE){ //ESC退出程序,其他BEEP if (AfxMessageBox("OK to close window?", MB_YESNO) == IDYES) { PostQuitMessage(0); } }
MFC入门--对话框实例

MFC入门--对话框实例(注意:例子程序使用Vc6.0开发实验时请用VS2010实现)实例1目的:设计一个基于对话框的程序,界面上有一个“延迟6秒”的按钮,点击后,程序主窗口在6秒内无法拖动。
关键点:MFC程序入门、线程与进程、消息机制操作过程:1-新建项目,选择MFC AppWizard (exe),命名项目为“SingleThread”。
如图:(注:关于各项目类型的说明,请参见文件“VC功能简介.ppt”的第8页)2-选择“Dialog based”,点击Finish,仔细观察项目信息。
3-在资源视图内对主对话框添加静态文本:“我的第一个MFC程序”和“演示耗时的单线程”,继而添加一个按钮,按钮现实文字“延迟6秒”,如图:4-在资源视图内,双击“延时6秒”按钮,为其添加BN_CLICKED消息(按下按钮时发出的消息)的响应函数OnButton1()。
在其中添加代码:Sleep(6000);请根据老师对程序的讲解,思考如下问题:1.类的继承:三个的类(CAboutDlg、CSingleThreadApp、CStringThreadDlg)的继承轨迹是怎样的?2.程序的入口在哪里?有没有类似Win32 Application中对于WM_CREATE的处理?3.三个类的对象的关系。
4.消息如何映射?实例2设计一个基于对话框的程序,开始运行后,每两秒弹出一个消息框。
关键点:MFC程序入门;定时器的建立、使用与删除;消息映射操作过程:1-新建项目,选择MFC AppWizard (exe),命名项目为“Test”。
2-选择“Dialog based”。
3-在BOOL CTestDlg::OnInitDialog()函数中添加SetTimer(1,2000,NULL); // 启动定时器4-通过ClassWizard给对话框添加WM_DESTROY的响应函数。
如图:在其中添加代码:KillTimer(1);5-通过ClassWizard给对话框添加WM_TIMER的响应函数。
MFC实例

MFC实例教程何礼富(安徽理工大学)实例1 最简单的对话框程序实例2 鼠标测试程序实例3 点鼠标游戏实例4 为程序添加图标1.新建一个MFC AppWizard(exe)工程,工程名为IconTest2.在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.设计界面:4.右键点性别组合框,选择“property”,添加以下数据:5.打开Class Wizard,添加以下变量:。
mfc单文档例子

mfc单文档例子以下是一个简单的MFC单文档(SDI)应用程序的示例:1. 首先,创建一个新的MFC应用程序项目。
在Visual Studio中,选择“文件”菜单,然后选择“新建”->“项目”。
在“新建项目”对话框中,选择“MFC应用程序”,然后输入项目名称和位置,并单击“确定”。
2. 在“MFC应用程序向导”中,选择“单文档”作为应用程序类型,并单击“完成”按钮。
3. 在生成的代码中,找到`CMainFrame`类。
这是应用程序的主窗口类。
4. 在`CMainFrame`类的`OnCreateClient`函数中,添加以下代码:```cppvoid CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext pContext){// 创建视图窗口m_(_T("My View"), WS_CHILD WS_VISIBLE WS_BORDERWS_HSCROLL WS_VSCROLL, CRect(0, 0, 800, 600), this,ID_VIEW_WIN);}```5. 在`CMainFrame`类的`OnCreate`函数中,添加以下代码:```cppBOOL CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct) {if (CFrameWnd::OnCreate(lpCreateStruct) == -1)return -1;// 创建工具栏和状态栏CToolBarCtrl tb;CRect rect(0, 0, 800, 24);(WS_CHILD WS_VISIBLE CBRS_TOP CBRS_GRIPPERCBRS_TOOLTIPS CBRS_FLYBY, rect, this, ID_VIEW_TB);m_(WS_CHILD WS_VISIBLE CBRS_TOP CBRS_GRIPPER CBRS_TOOLTIPS CBRS_FLYBY, rect, this, ID_VIEW_TB);m_(this);m_(0, ID_VIEW_STATUSBAR, SBPS_STRETCH, 0);m_(1, ID_VIEW_STATUSBAR2, SBPS_STRETCH, 0);m_(2, ID_VIEW_STATUSBAR3, SBPS_STRETCH, 0);m_(0, SBPS_NORMAL);m_(1, SBPS_NORMAL);m_(2, SBPS_NORMAL);m_(0, _T("Ready"));m_(1, _T("Ready"));m_(2, _T("Ready"));return TRUE;}```6. 编译并运行应用程序。
MFC编程例子

例程1. MFChello步骤1.选择新建-项目,打开后出现如果1所示对话框。
选择VC++中的智能设备,在右边选择MFC 智能设备应用程序。
在下方的名称中输入MFChello,点击确定。
步骤2.步骤3.步骤4.步骤5.步骤6在BOOL CMFChelloApp::InitInstance()添加如下代码AfxEnableControlContainer(); //调用此函数的目的是为了使程序支持包含OLE控件MessageBox(NULL,_T("一个简单的MFC程序"),_T("你好"),MB_OK); //谈出对话框例程2.鼠标测试程序同例程1一样,建立一个基于对话框的MouseTest程序。
在右边的对话框编辑器中选择Static Text,添加到对话框中一个静态文本,然后更改右下角的静态文本的属性,Caption改为提示:点一下鼠标右键或左键,ID改为IDC_STATIC点击对话框,在右下角点击消息按钮,出现下图。
找到WM_LBUTTONDOWN消息,添加OnLButtonDown函数。
在函数中添加代码如下MessageBox(NULL,_T("你点的是左键"),_T("The first Dialog"),MB_OK);同样操作在WM_RBUTTONDOWN消息,添加OnRButtonDown函数。
在函数中添加代码如下MessageBox(NULL,_T("你点的是右键"),_T("The first Dialog"),MB_OK);进行仿真即可。
例程3.添加图标创建一个基于对话框的IconTest程序。
切换到资源视图。
右键点击Icon,选择添加资源,弹出下图。
选择导入,导入一个图标文件(.ico)文件,如下图。
点击CIconTestDlg类,找到CIconTestDlg函数。
VC++MFC编程实例

第10章 Visual C++编程实例
另外,也可以选择应用程序静态链接到MFC。静 态链接意味着,应用程序不依赖于MFC库文件的存在 (但仍然可能需要Msvcrt.dll文件)。静态链接的代价是 可执行文件更大,而且MFC内存的利用可能不够充分。
在菜单中选择“工程”中的“设置”对话框,在 对 话 框 右 方 的 “ General” 选 项 卡 中 通 过 组 合 框 “Microsoft Foundation Classes”选择使用MFC类库的方 法。可选项有三种,分别为“Not Using MFC(不使用 MFC)","Use MFC in a Shared DLL(以动态链接库方式使 用MFC)”和“Use MFC in a Static Library(以静态库方 式使用MFC)”。
penNew.CreatePen(PS_SOLID,1,RGB(255,0,0)); dc.SelectObject(&brushNew); dc.SelectObject(&penNew);
第10章 Visual C++编程实例
for(int i=0;i<m_nBubbleCount;i++) dc.Ellipse(m_rectBubble[i]);
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
按钮控件
ห้องสมุดไป่ตู้
13.生成对话框类及其相应的数据成员和成员函数 鼠标右键点击对话框标题,选类向导“ClassWizard”,弹出对话框问是否为新设计 的对话框生成一个类,选OK;
14. 在对话框将新设计的对话框的类名改为“CDlgCircle”,选OK;
15. 点击“Member Varibles”为CDlgCircle类添加数据成员,双击IDC_EDIT_RAD, 弹出对话框,设置变量名和变量类型;
定制工具栏
编译 编译并生成 EXE文件 停止 编译
执行至光标 断点 单步执行 调试运行 进入程序块 执行
实例一:圆的计算 模仿内容: (1)工程创建步骤; (2)MFC应用程序类、框架类、文档类、视口类的了解; (3)VC编程工具的了解(ClassView、ResourceView、FileView等); (4)对话框设计; (5)菜单设计; (6)工具条设计;
VC++编程速成
1. Visual C++用户界面通常称为集成开发环境(IDE),包括创建源代码、 用户界面通常称为集成开发环境( ),包括创建源代码 用户界面通常称为集成开发环境 ),包括创建源代码、 编辑代码、编译、链接和调试等功能。集成开发环境( 编辑代码、编译、链接和调试等功能。集成开发环境(IDE)是一个将 ) 程序编辑器、编译器、调试工具和其他建立应用程序的工具集成在一起 程序编辑器、编译器、 的用于开发应用程序的软件系统。 的用于开发应用程序的软件系统。 2. 向导(Wizard) 向导( ) 向导是一个通过一步步的帮助引导你工作的工具。 向导是一个通过一步步的帮助引导你工作的工具。Developer Studio中包 中包 含三个向导 。 3.MFC库 . 库 库(library)是可以重复使用的源代码和目标代码的集合。MFC )是可以重复使用的源代码和目标代码的集合。 开发环境所带的类库, (Microsoft Fundamental Classes)是Visual C++开发环境所带的类库, ) 开发环境所带的类库 在该类库中提供了大量的类,可以帮助开发人员快速建立应用程序。 在该类库中提供了大量的类,可以帮助开发人员快速建立应用程序。
静态文本
9. 用同样的方法添加静态文本“圆的周长:”、“圆的面积:”,选中3个静态文本 以其中一个为基准,利用控件对齐工具 控件对齐工具实现左(或右)对齐,等高、等宽、等间距, 控件对齐工具 让对话框更美观。
10.选择编辑框控件,在对话框中用鼠标左键拖动画一个框,鼠标右键点击控件,选 改为 “Properties”,在“Edit Properties”对话框中,将ID改为 “ IDC_EDIT_RAD” ,完成 点击“ 后,点击“X”。
接下来的工作就是程序员根据自己的应用需求添加相应的菜 单、图形工具按钮、对话框以及对应的源代码,实现自己的 功能。
6.利用资源编辑工具生成一个对话框 点击ResourceView,选择Dialog,击鼠标右键,选“Insert Dialog”, 会弹出对话框编辑界面,鼠标右键点击对话框标题,选“Properties”。
MFC类库概念和组成
类库是一个可以在应用中使用的相互关联的C++类的集合。 类的集合。 类库是一个可以在应用中使用的相互关联的 类的集合 Microsoft提供了一个基础类库 提供了一个基础类库MFC,其中包含用来开发 提供了一个基础类库 , C++和C++ Windows应用程序的一组类。基础类库的核心是 应用程序的一组类。 和 应用程序的一组类 以C++形式封装了大部分的 形式封装了大部分的Windows API。类库表示窗口、 。类库表示窗口、 形式封装了大部分的 对话框、设备上下文、公共GDI对象如画笔、调色板、控制 对象如画笔、 对话框、设备上下文、公共 对象如画笔 调色板、 框和其他标准的Windows部件。这些类提供了一个面向 部件。 框和其他标准的 部件 Windows中结构的简单的 中结构的简单的C++成员函数的接口。 成员函数的接口。 中结构的简单的 成员函数的接口
MFC类图及主要类
文档类 绘图类
位图类
应用程序类
视口类
对话框类 框架类
数据库类 网络通信类
Visual C++ MFC AppWizard(EXE) 创建一个Project(工程/ 创建一个Project(工程/项目)概述 一个应用程序对应一个project; project是与应用程序相关的一组文件及其配置,用以生成最终 的程序或二进制文件; Microsoft Developer Studio提供了两个功能强大的向导工具:
包括快捷键 对话框 菜单 字符 工具栏 版本信息。选择不同的资源, VC++会加载不同的所见即所得的资源编辑器,资源数据信息保存在 resource.rc文件中,每个资源都有一个ID号,保存在resource.h文件中。 resource.rc经过编译后生成resource.res文件,并加入到project中。
27. 程序运行测试
28. 在工具条上添加图示化的工具按钮
29. 点击工具条上图示化圆的按钮,程序运行测试
谢谢使用范例程序! 希望对您的VC MFC编程有所帮助。 万事开头难,希望我的尝试能帮助您渡过 学习MFC编程初期的难关! 一旦您对MFC编程开始感兴趣,就会开始 享受编程的乐趣,并且信心会大大增强!
微软公司认为Windows应用程序的风格基本一致,就是程序 启动后,最上方是标题 标题,下面是主菜单 主菜单、图示化的工具栏 工具栏、 标题 主菜单 工具栏 最下方的是状态栏 状态栏,一般显示程序执行过程中的提示信息。 状态栏 基于这种考虑,微软开发的VC在创建工程后就自动生成一 些代码文件,把基本框架实现了,初学者对自动生成的代码 有“摸不着头脑”的感觉,觉得MFC编程不想C语言程序那 样有头有尾,一下子找不到自己写代码的地方,因此花费一 些时间精力,适应MFC编程习惯很重要 !切莫被最初的困 难吓住!
控件编辑工具
文件信息
AppWizard创建Project的相关说明 AppWizard创建Project的相关说明
由AppWizard生成的应用程序是一个基本的Windows应用程序,用户可以 对它进行编译并运行,但这个程序未做任何工作,只是为用户继续添加代码 提供了一些框架性的代码,可以节省用户设计应用程序框架的时间和精力; Project workspace信息以dsw以后缀的文件进行保存; Project文件以dsp为后缀的文件进行保存; Project开发步骤:
Visual C++ MFC AppWizard(EXE)开发步骤
主菜单 工具栏
Project Workspace 类信息
主工作空间 蓝色图标表示数据成员 红色图标表示函数成员
全局变量
没有表示公有成员 钥匙表示保护成员 锁 表示私有成员
输出窗口 状态栏
资源信息
About对话框 对话框控件工具栏
18. 点击Edit Code。
19. 在计算按钮对应的函数中添加代码。
20. 添加主菜单“测试”。
21. 添加子菜单“圆的测试”。
22. 添加子菜单“圆的测试”的相应函数。
23. 添加子菜单“圆的测试”的相应函数。
24. 点击Edit Code按钮
25. 编辑“圆的测试”相应函数
26. 包含 DlgCircle.h文件
16. 同样方法,双击IDC_EDIT_PERIMETER,弹出对话框,设置变量名为 m_perimeter和变量类型为double;双击IDC_EDIT_AREA,弹出对话框,设置变量 名为m_area和变量类型为double;可以为半径变量 m_rad设置最小值和最大值。
17. 点击Message Maps,选择IDC_BUTTON_COUNT,点击BN_CLICKED,再点击 ADD FUNCTION…,弹出对话框,点击OK。该部分为对话框按钮“计算”添加响应 函数,被点击时,就调用该函数计算。
1、在D:盘上创建一个MFC AppWizard工程circle
2、选择“Single document”,后面的可以不选择,直接点击“Finish”
3、点击“Finish”后弹出如下界面,VC自动生成应用程序类、框架类、文档类、视口 类 应用程序类:负责程序的初始化、运行以及结束处理; 框 架 类:负责主窗口的创建、显示和搜索用户命令以及消息派发; 文 档 类:负责程序文档的加载与保存等; 视 口 类:为程序文档显示和修改提供界面。
应用程序向导AppWizard 应用程序向导AppWizard
•生成应用程序的C++源代码架构; •通过一系列对话框提示用户输入所需创建程序的信息; •指定应用程序的特性:如多文档界面?带工具栏?支持数据库?
类向导Class 类向导Class Wizard
•创建新类; •建立(窗口/对话框/控件/菜单/快捷键)消息映射函数; •删除消息映射函数; •为控件添加或删除成员变量; •显示指定类的基本信息;
(1)应用AppWizard创建project; (2)使用工作区窗口(ClassView/FileView/ResourceView)对project的类、文件和资源 进行编辑; (3)在project中添加或删除文件; (4)在project中编辑源代码和资源; (5)编译project; (6)纠正编译或链接错误; (7)测试可执行文件; (8)优化代码。
编辑框控件
11. 同样方法添加周长和面积的编辑框控件,并将ID分别改为 “ IDC_EDIT_PERIMETER” 分别改为 分别 控件对齐工具实现左(或右)对齐,等高、等 和“ IDC_EDIT_AREA”,完成后,利用控件对齐工具 ,完成后, 控件对齐工具 宽、等间距,让对话框更美观。