MFC---对话框(一)对话框文本的获取和设置

我们使用的编译环境是VC++6.0。首先,在MFC Wizard(exe)下建立基于对话框的工程,取名为Mybole。

在对话框上放置三个静态文本框, 三个编辑框。如图:

  

现在实现一个简单的功能:即在Number1, 和Number2中输入数字,点击Add按钮,将两个数相加的结果显示在Number3中。

   在Add按钮的消息相应函数OnBtnAdd()中添加一下代码,可实现两个数的相加,体会获取和设置控件文本的方法:

方法一:利用CDialog 的成员函数GetDlgItem(), GetWindowText()和SetWindowText();

	int num1, num2, num3;
	char ch1[10], ch2[10], ch3[10];
	GetDlgItem(IDC_EDIT1)->GetWindowText(ch1, 10);	//获取文本信息
	GetDlgItem(IDC_EDIT2)->GetWindowText(ch2, 10);

	num1 = atoi(ch1);			//字符转换为数字
	num2 = atoi(ch2);
	num3 = num1 + num2;

	itoa(num3, ch3, 10);
	GetDlgItem(IDC_EDIT3)->SetWindowText(ch3);	//获取窗口指针, 设置窗口(控件)文本*/

方法二:利用GetDlgItemText()和SetDlgItemText();

	int num1, num2, num3;
	char ch1[10], ch2[10], ch3[10];

	GetDlgItemText(IDC_EDIT1, ch1, 10);			//GetDlgItemText = GetDlgItem + GetWindowText
	GetDlgItemText(IDC_EDIT2, ch2, 10);
	
	num1 = atoi(ch1);			//字符转换为数字
	num2 = atoi(ch2);
	num3 = num1 + num2;

	itoa(num3, ch3, 10);
	SetDlgItemText(IDC_EDIT3, ch3);				//SetDlgItemText = GetDlgItem + SetWindowText*/

方法三:利用GetDlgItemInt(), 和SetDlgItemInt();

	int num1, num2, num3;
	num1 = GetDlgItemInt(IDC_EDIT1);			//获取控件文本, 做整数返回
	num1 = GetDlgItemInt(IDC_EDIT2);

	num3 = num1 + num2;

	SetDlgItemInt(IDC_EDIT3, num3);

方法四:在类向导中分别为三个编辑框设置int型成员变量,m_num1, m_num2, m_num3;

	UpdateData();			//将值从控件传到成员变量
	m_num3 = m_num1 + m_num2;
	UpdateData(FALSE);		//将值从成员变量传给控件

方法五:在类向导中分别为三个编辑框设置control型成员变量,m_edit1, m_edit2, m_edit3; 利用CEdit类的成员函数

	int num1, num2, num3;
	char ch1[10], ch2[10], ch3[10];
	m_edit1.GetWindowText(ch1, 10);		//CEdit 的成员函数, 获取文本信息
	m_edit2.GetWindowText(ch2, 10);

	num1 = atoi(ch1);			//字符转换为数字
	num2 = atoi(ch2);
	num3 = num1 + num2;

	itoa(num3, ch3, 10);
	m_edit3.SetWindowText(ch3);
方法六:利用Windows API, 发送信息给操作系统,实现对控件内容修改

	int num1, num2, num3;
	char ch1[10], ch2[10], ch3[10];
	//发送信息的三种方式
	::SendMessage(GetDlgItem(IDC_EDIT1)->m_hWnd, WM_GETTEXT, 10, (LPARAM)ch1);		
	::SendMessage(m_edit2.m_hWnd, WM_GETTEXT, 10, (LPARAM)ch2);

	num1 = atoi(ch1);			//字符转换为数字
	num2 = atoi(ch2);
	num3 = num1 + num2;

	itoa(num3, ch3, 10);
	m_edit3.SendMessage(WM_SETTEXT, 0, (LPARAM)ch3);
方法七:利用Windows API, 发送信息给操作控件,实现对控件内容修改

	int num1, num2, num3;
	char ch1[10], ch2[10], ch3[10];

	SendDlgItemMessage(IDC_EDIT1, WM_GETTEXT, 10, (LPARAM)ch1);
	SendDlgItemMessage(IDC_EDIT2, WM_GETTEXT, 10, (LPARAM)ch2);

	num1 = atoi(ch1);			//字符转换为数字
	num2 = atoi(ch2);
	num3 = num1 + num2;

	itoa(num3, ch3, 10);
	SendDlgItemMessage(IDC_EDIT3, WM_SETTEXT, 10, (LPARAM)ch3);

通过以上七种方法的学习,可以体会到获取控件文本的方法,从多个方向学习Windows API 以及MFC类库。也可以由上述方法拓展,上手其他空间,做到触类旁通。


你可能感兴趣的:(MFC学习笔记)