MFC 操作控件数据

在MFC中有多种获取控件数据的方法

1.GetWindowText()和SetWindowText()函数

ExpandedBlockStart.gif
1  int num1,num2,num3;
2  char ch1[ 10],ch2[ 10],ch3[ 10];
3 GetDlgItem(IDC_EDIT1)->GetWindowText(ch1, 10);
4 GetDlgItem(IDC_EDIT2)->GetWindowText(ch2, 10);
5 num1 = atoi(ch1);
6 num2 = atoi(ch2);
7 num3 = num1+num2;
8 itoa(num3,ch3, 10);
9 GetDlgItem(IDC_EDIT3)->SetWindowText(ch3);
View Code

 2.GetDlgItemText()和GetDlgItemText()函数

ExpandedBlockStart.gif
1 GetDlgItemText(IDC_EDIT1,ch1, 10);
2 GetDlgItemText(IDC_EDIT2,ch2, 10);
3 num1 = atoi(ch1);
4 num2 = atoi(ch2);
5 num3 = num1+num2;
6 itoa(num3,ch3, 10);
7 SetDlgItemText(IDC_EDIT3,ch3);
View Code

 3.将对话框中的类中添加新的数据成员,是新的数据成员通过DDX和DDV和控件联系起来。

操作步骤如下:

(1)查看- 类编辑向导-Member Variables 中添加类成员变量和控件相关连,并填写好变量的取值范围。

ExpandedBlockStart.gif
1 UpdateData();
2 m_num3 = m_num1+m_num2;
3 UpdateData(FALSE);
View Code

 4.添加控件和控件之间的关联,操作步骤和3类似,不同的地方在于添加的数据成员变量类型是控件

ExpandedBlockStart.gif
1 m_Edit1.GetWindowText(ch1, 10);
2 m_Edit2.GetWindowText(ch2, 10);
3 num1=atoi(ch1);
4 num2=atoi(ch2);
5 num3=num1+num2;
6 itoa(num3,ch3, 10);
7 m_Edit3.SetWindowText(ch3);
View Code

 5.调用SendMessage函数

ExpandedBlockStart.gif
 1 ::SendMessage(GetDlgItem(IDC_EDIT1)->m_hWnd,WM_GETTEXT, 10,(LPARAM)ch1);
 2 ::SendMessage(m_Edit1.m_hWnd,WM_GETTEXT, 10,(LPARAM)ch1);
 3 GetDlgItem(IDC_EDIT1)->SendMessage(WM_GETTEXT, 10,(LPARAM)ch1);
 4 m_Edit1.SendMessage(WM_GETTEXT, 10,(LPARAM)ch1);
 5 m_Edit2.SendMessage(WM_GETTEXT, 10,(LPARAM)ch2);    
 6 num1=atoi(ch1);
 7 num2=atoi(ch2);
 8 num3=num1+num2;
 9 itoa(num3,ch3, 10);    
10 m_Edit3.SendMessage(WM_SETTEXT, 0,(LPARAM)ch3);
View Code

 6.调用SendDlgItemMessage函数

ExpandedBlockStart.gif
 1  int num1,num2,num3;
 2  char ch1[ 10],ch2[ 10],ch3[ 10];
 3 
 4 SendDlgItemMessage(IDC_EDIT1,WM_GETTEXT, 10,(LPARAM)ch1);
 5 SendDlgItemMessage(IDC_EDIT2,WM_GETTEXT, 10,(LPARAM)ch2);
 6 
 7 num1=atoi(ch1);
 8 num2=atoi(ch2);
 9 num3=num1+num2;
10 itoa(num3,ch3, 10);
11 
12 SendDlgItemMessage(IDC_EDIT3,WM_SETTEXT, 0,(LPARAM)ch3);
13 SendDlgItemMessage(IDC_EDIT3,EM_SETSEL, 0,- 1);
14 m_Edit3.SetFocus();
View Code

 7.调用函数GetDlgItemInt()

ExpandedBlockStart.gif
num1 = GetDlgItemInt(IDC_EDIT1);
num2 = GetDlgItemInt(IDC_EDIT2);
num3 = num1+num2;
SetDlgItemInt(IDC_EDIT3,num3);
// SetDlgItemText(IDC_EDIT3,itoa(num3,ch3,10));
View Code

转载于:https://www.cnblogs.com/lanshy/p/4444258.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值