VS2019/MFC学习笔记之一(创建对话框工程并实现简单加法运算)

   日期:2021-03-24     浏览:194    评论:0    
核心提示:一、创建MFC项目

目录

一、创建MFC项目

二、源文件介绍

三、简单加法运算实例

1、界面设计

第一步、修改对话框名称

第二步、添加一个静态文本框(Static Text)

第三步、添加一个编辑框(Edit Control);

第四步、添加一个按钮(Button)

第五步、运行效果

2、代码实现

第一步、添加控件变量

第二步、添加消息处理函数

第三步、在消息处理函数添加自定义功能

第四步、运行结果

一、创建MFC项目

1、打开Visual Studio 2019,点击创建新项目;

2、选择MFC应用

3、配置新项目,在项目名称中键入项目名称;

4、在应用程序类型选择基于对话框,点击完成;

二、源文件介绍

framework.h:一些基本的MFC组件和扩展的头文件;

pch.h:预编译头文件;

Resource.h:界面和控件相关文件;

summator.h:创建CsummatorApp类;

summatorDlg.h:创建对话框CsummatorDlg类,所有和对话框中控件相关的函数都在此文件中声明;

targetver.h:定义Windows版本头文件;

pch.cpp:与预编译标头对应的源文件;

summator.cpp:定义应用程序的类行为;

summatorDlg.cpp:对话框实现文件;

三、简单加法运算实例

1、界面设计

第一步、修改对话框名称

方法:右键对话框打开属性修改对话框名称,在描述文字(Caption处键入“加法运算器”,运行后界面如下;

第二步、添加一个静态文本框(Static Text)

方法:打开工具箱,找到Static Text,选中(按键不松)直接拖到对话框中即可(或左键点击选中后,在对话框内再点击一次鼠标左键),鼠标移至虚线框上黑点处,左键点击并拖动可以改变控件大小;

右键属性,找到描述文字处键入“被加数”;

第三步、添加一个编辑框(Edit Control)

方法:打开工具箱,找到Edit Control,选中(按键不松)直接拖到对话框中即可(或左键点击选中后,在对话框内再点击一次鼠标左键),鼠标移至虚线框上黑点处,左键点击并拖动可以改变控件大小;

按照以上方法分别添加“加数”、“结果”的文本框和编辑框

第四步、添加一个按钮(Button)

方法:打开工具箱,找到Button,选中(按键不松)直接拖到对话框中即可(或左键点击选中后,在对话框内再点击一次鼠标左键),鼠标移至虚线框上黑点处,左键点击并拖动可以改变控件大小;

右键属性,在描述文字处键入“计算”

第五步、运行效果

2、代码实现

第一步、添加控件变量

方法:右键编辑框,选择添加变量,将类别修改成,将变量类型修改成double,并在名称处输入你想取的变量名,此处为g_num1,按照此方法依次添加剩下两个编辑框控件变量,此处变量名为g_num2、g_sum;

 

设置完控制变量后,在summatorDlg.cpp文件可以见到如下代码:


CsummatorDlg::CsummatorDlg(CWnd* pParent )
	: CDialogEx(IDD_SUMMATOR_DIALOG, pParent)
	, g_num1(0) 
	, g_num2(0)
	, g_sum(0)
{
	m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CsummatorDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialogEx::DoDataExchange(pDX);
	DDX_Text(pDX, IDC_EDIT1, g_num1);
	DDX_Text(pDX, IDC_EDIT2, g_num2);
	DDX_Text(pDX, IDC_EDIT3, g_sum);
}

void CsummatorDlg::DoDataExchange(CDataExchange* pDX)

如果我们在程序运行界面中ID为IDC_EDIT1的编辑框中输入被加数,会通过DoDataExchange()函数将输入的值保存到g_num1变量中,反之如果程序运行中修改了变量 g_num1的值,则通过DoDataExchange()函数也可以将新的变量值显示到ID为IDC_EDIT1的编辑框中。

但是这种数据交换机制中,DoDataExchange() 并不是被自动调用的,而是需要我们在程序中调用 CDialogEx::UpdateData()函数,由 UpdateData() 函数再去自动调用 DoDataExchange()的。

函数:UpdateData() ;

原型:BOOL UpdateData(BOOL bSaveAndValidate = TRUE);

参数:表示传递方向,TRUE 表示从 控件 传给 变量FALSE 表示从 变量 传给 控件。默认值是 TRUE,即从 控件 传给 变量;

返回值:如果传递成功函数返回TRUE ,反之返回FALSE

第二步、 添加消息处理函数

方法:

1、双击控件按钮,系统直接跳转到summatorDlg.cpp文件,并自动生成如下代码

void CsummatorDlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
}

2、右键控件按钮,选择类向导,再点击添加处理程序,可修改函数名称,点确定即可;

消息类型
消息 说明
BN_CLICKED 单击
BCN_DROPDOWN 在用户单击拆分按钮上的下拉箭头时发送
BCN_HOTITEMCHANGE 热项或突出显示的项已更改
BN_DOUBLECLICKED 双击
BN_KILLFOCUS 控件已丢失输入焦点
BN_SETFOCUS 控件已获得输入焦点
NM_GETCUSTOMSPLITRECT 在绘制拆分按钮之前由按钮控件发送给其父级
NV_CUSTOMDRAW 将自定义绘图操作通知父级
NM_THEMECHANGED 主题已更改

 

 第三步、在消息处理函数添加自定义功能

void CsummatorDlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码

	
	UpdateData(TRUE);

	
	g_sum = g_num1 + g_num2;

	
	UpdateData(FALSE);
}

第四步、运行结果

 

 

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
更多>相关资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服