一、创建并运行MFC单文档程序
1、创建单文档程序
这里使用的是VS2017。首先,打开VS2017,选择文件->新建->项目,然后选择Visual C++ -> MFC /ATL>MFC应用程序 ,如下图所示:
修改名称(或默认),修改位置(或默认),点击确定。然后接下来可以看到如下界面:
应用程序类型选择“单个文档”,其他设置默认,然后点击完成即可创建成功。
2、运行单文档程序
点击"本地Windows调试器"或者使用Ctrl+F5即可运行,得到视图窗口,如下图所示:
二、工作区
1、资源管理器
可以看到屏幕右侧自带了资源管理器,用来管理各类代码。
若没有或不慎关闭,可以从资源->解决方案资源管理器打开。
2、资源视图
资源视图,用于管理程序运行时的视图。
可从视图 ->其他窗口 -> 资源视图,或者快捷键ctrl+shift+E打开。
3、类视图
类视图用于将视图对应的不同请求方式以类中的不同方法来区别定义。
可从视图 -> 类视图,或者快捷键ctrl+shift+C打开。
三、添加菜单及相应事件
1、新建菜单
打开资源视图,点击进入IDR_MAINFRAME,如下所示:
然后在“帮助(H)”后面的空白框中(即箭头所指处)填入新建菜单的名字,然后点击其子菜单处的空白方框,同样写入新建子菜单的名字,如下所示:
2、添加事件
首先,修改子菜单的ID(默认亦可),单击子菜单,然后在菜单编辑器中修改其ID属性值,这里我将其改为ChildMenu。
接下来,右键子菜单,选择添加事件处理程序,如下:
然后在事件处理向导处选择消息类型为COMMAND,在类列表中选中C+”你的项目名称“+View(若你的项目名为Test则为CTestView),然后点击添加编辑,如下:
然后会跳转到指定cpp文件中,并且自动生成函数名。
现在来编写相应函数内容,我在里面写了一段代码,它的作用是弹出小窗口,同时显示出“1",如下:
最后,运行程序,测试子菜单事件:
在上图中可以看到,我们新增的菜单。
点击子菜单:
结果跟预想的一样,出现了一个小窗口,同时窗口中显示出”1“。
四、添加弹出框
1、创建弹出框
在资源视图中,右键Dialog->添加资源,然后选择Dialog点击新建,即可创建成功。
我们可以看到Dialog中多了一个对象,就是我们新建的弹出框。
2、调用弹出框
创建了弹出框,之后该如何调用它呢,或者说该怎么让它弹出来呢?
1)添加跳出框类对象
首先,修改弹出框ID(默认亦可),点击IDD_DIALOG1,在对话框节点中,修改其ID属性,我将其改为Test。
然后右键弹出框,点击添加类:
填入类名(注意类名不可与ID重复,不论是菜单ID或者是弹出框ID),我写的是TestDLG,点击确定即可:
2)在菜单中调用弹出框
点击进入资源视图->Menu->IDR_MAINFRAME中,找到之前创建的子菜单,右键子菜单->添加事件处理程序->CXXXView,点击编辑代码。
接下来,给跳转后的cpp文件加上“TestDLG.h”头文件(头文件名字=你的弹出框类名.h):
然后编辑子菜单事件对应的函数,在其中调用我们刚才创建的弹出框。
然后运行程序,点击子菜单,即可看到我们刚才的弹出框被调用。
3、给弹出框添加常用控件
点击进入资源视图->Dialog->Test,找到刚才新建的弹出框,可以看到界面上有一个工具箱,若没有,可使用Crtl+Alt+x快捷键打开。
1)Button控件
按钮,将Button拖到弹出框上,可以通过修改Button的Caption属性,让Button上显示出不同的文字。
双击按钮可以编辑按钮点击事件:
2)Static Text
静态文本,可以通过修改其Caption属性,令其显示不同的文字。
3)Edit Control
文本框,可用于输入文本内容。
可通过GetDlgItemInt(文本框ID)获取文本框内的数字内容(Int类型)
可通过GetDlgItem(文本框ID)->GetWindowText(CString类型变量)获取文本框的字符串内容(CString类型)
介绍完后,我们可以利用这些控件实现一点简单的功能:通过点击按钮显示文本框中的内容。
控件布局如下所示:
编辑按钮响应事件,获取文本框中的字符串,并通过弹出小窗口的形式显示出来:
运行程序,调出弹窗,并在文本框中写入内容,点击按钮,可以看到,文本框中内容通过小窗口显示了出来: