【MFC入门】之二 标准控件在可视化编程中的应用之编辑框控件

关键词:
成员变量的搜索,删除

一定要注意成员变量的类型到底是控制类型还是Value类型,关键取决于需要实现的功能
编辑框控件的使用

UpdateData(TRUE);将对话框空间内容更新到成员变量

UpdateData(FALSE);将成员变量的值更新到对话框中的控件


首先我们熟悉一下编辑框做一个copy和清除退回功能的界面,代码中加的L涉及到不同编码的知识在这不再赘述

【MFC入门】之二 标准控件在可视化编程中的应用之编辑框控件_第1张图片

让我们看看整体要求和相关知识以及实现

其中那些Multiline之类的在VS的右下角自行进行编辑



下面是实现功能程序

void C编辑框控件之copyDlg::OnBnClickedExitButton()
{
	// TODO:  在此添加控件通知处理程序代码
	OnOK();
}


void C编辑框控件之copyDlg::OnBnClickedShow1Button()
{
	// TODO:  在此添加控件通知处理程序代码
	m_edit1.SetSel(0, -1);
	m_edit1.ReplaceSel(L"This is the first EditBox");
}


void C编辑框控件之copyDlg::OnBnClickedUndoButton()
{
	// TODO:  在此添加控件通知处理程序代码
	m_edit1.Undo();
	m_edit2.Undo();
}


void C编辑框控件之copyDlg::OnBnClickedClear1Button()
{
	// TODO:  在此添加控件通知处理程序代码
	m_edit1.SetSel(0, -1);
	m_edit1.ReplaceSel(L"");
}


void C编辑框控件之copyDlg::OnBnClickedTransferButton()
{
	// TODO:  在此添加控件通知处理程序代码
	m_edit1.SetSel(0, -1);
	m_edit1.Copy();
	m_edit2.SetSel(0, -1);
	m_edit2.ReplaceSel(L"");
	m_edit2.Paste();
}


void C编辑框控件之copyDlg::OnBnClickedShow2Button()
{
	// TODO:  在此添加控件通知处理程序代码
	m_edit2.SetSel(0, -1);
	m_edit2.ReplaceSel(L"Second UnHum?");
}


void C编辑框控件之copyDlg::OnBnClickedClear2Button()
{
	// TODO:  在此添加控件通知处理程序代码
	m_edit2.SetSel(0, -1);
	m_edit2.ReplaceSel(L"");
}


接下来将利用编辑框,radio按钮,按钮控件以及相关成员函数的知识进行一个计算器的编写

【MFC入门】之二 标准控件在可视化编程中的应用之编辑框控件_第2张图片

前面写程序的问题就是没有看清这个编辑框的输入是数字创建了Control类型的成员变量,对于误创建的变量可以通过搜索然后再删除


添加double类型的成员变量如下图所示

【MFC入门】之二 标准控件在可视化编程中的应用之编辑框控件_第3张图片

此外结果一般不希望修改,因此将结果框改成Disable形式

【MFC入门】之二 标准控件在可视化编程中的应用之编辑框控件_第4张图片

昨天出了点小问题搞了很久,那就是在加的圆按钮那块的成员变量类型还是没理解给搞成控制类型的实际应当为int类型的成员变量,为int型成员变量的原因是要根据switch语句对执行加减乘除操作进行判别,所以应当应用int型成员变量,对于其他几个,分别是“运算数1”,“运算数2”,“结果”编辑框因为输入数据为数字所以应当为Value类型的double变量

添加好变量以后就可以根据上面的界面进行添加成员函数了,因为只牵涉到很简单的加减乘除操作以及相应的添加成员函数在此不添加导图

void CNew计算器Dlg::OnEnChangeNum1()
{
	// TODO:  如果该控件是 RICHEDIT 控件,它将不
	// 发送此通知,除非重写 CDialogEx::OnInitDialog()
	// 函数并调用 CRichEditCtrl().SetEventMask(),
	// 同时将 ENM_CHANGE 标志“或”运算到掩码中。

	// TODO:  在此添加控件通知处理程序代码
	UpdateData(TRUE);
	//该语句的作用为将对话框各控件的内容更新到对应的成员变量
	switch (m_operator)
	{
	case 0:
		m_result = m_num1 + m_num2;
		break;
	case 1:
		m_result = m_num1 - m_num2;
		break;
	case 2:
		m_result = m_num1 * m_num2;
		break;
	case 3:
		m_result = m_num1 / m_num2;
		break;
	}
	UpdateData(FALSE);
	//该语句的作用为将成员变量的值更新到对话框控件
}


void CNew计算器Dlg::OnBnClickedAdd()
{
	// TODO:  在此添加控件通知处理程序代码
	OnEnChangeNum1();
}


void CNew计算器Dlg::OnBnClickedSub()
{
	// TODO:  在此添加控件通知处理程序代码
	OnEnChangeNum1();
}


void CNew计算器Dlg::OnBnClickedMul()
{
	// TODO:  在此添加控件通知处理程序代码
	OnEnChangeNum1();
}


void CNew计算器Dlg::OnBnClickedDiv()
{
	// TODO:  在此添加控件通知处理程序代码
	OnEnChangeNum1();
}


void CNew计算器Dlg::OnEnChangeNum2()
{
	// TODO:  如果该控件是 RICHEDIT 控件,它将不
	// 发送此通知,除非重写 CDialogEx::OnInitDialog()
	// 函数并调用 CRichEditCtrl().SetEventMask(),
	// 同时将 ENM_CHANGE 标志“或”运算到掩码中。

	// TODO:  在此添加控件通知处理程序代码
	OnEnChangeNum1();
}


void CNew计算器Dlg::OnBnClickedReset()
{
	// TODO:  在此添加控件通知处理程序代码
	m_result = m_num1 = m_num2 = 0;
	UpdateData(FALSE);
}


你可能感兴趣的:(【MFC入门】之二 标准控件在可视化编程中的应用之编辑框控件)