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

来源:互联网 发布:centos 安装ant 编辑:程序博客网 时间:2024/05/01 22:06

我们使用的编译环境是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 + GetWindowTextGetDlgItemText(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类库。也可以由上述方法拓展,上手其他空间,做到触类旁通。


原创粉丝点击