博客
关于我
MFC笔记----编辑框加法运算
阅读量:645 次
发布时间:2019-03-15

本文共 1930 字,大约阅读时间需要 6 分钟。

(均为在“OPeration”按钮的函数中写代码)
方法一:利用控件型变量m_editA,m_editB,m_editC
void CMyDlg::OnButtonOperation() //按钮Operation的函数{    // TODO: Add your control notification handler code hereint numA, numB, numC;char chA[10], chB[10], chC[10];m_editA.GetWindowText(chA, 10); //m_editA、m_editB、m_editC为控件型变量m_editB.GetWindowText(chB, 10);numA = atoi(chA);numB = atoi(chB);numC = numA + numB;itoa(numC, chC, 10);m_editC.SetWindowText(chC);}
注:此时框内无数字。
方法二:利用数值型变量m_numA,m_numB,m_numC,用UpdateData直接上传数据
UpdateData(TRUE);m_numC = m_numA + m_numB;UpdateData(FALSE);
注:此时编辑框初始化就含数字0,初始化成了“= 0.0f;”

并且用类向导编辑了float数值型编辑框变量范围0~100.所以当超出范围时会有提示

如上,第三个框超出范围。

同时,不能删除初始化的数字0,不然:

(不过第三个编辑框用于输出结果,删0也没事儿)

方法三:利用GetDlgItem()和GetWindowText()和SetDlgItem()

int numA, numB, numC;	char chA[10], chB[10], chC[10];	GetDlgItem(IDC_EDIT_A)->GetWindowText(chA, 10); //10为长度	GetDlgItem(IDC_EDIT_B)->GetWindowText(chB, 10); //10为长度	numA = atoi(chA);	numB = atoi(chB);	numC = numA + numB;	itoa(numC, chC, 10);//10为十进制	GetDlgItem(IDC_EDIT_C)->SetWindowText(chC);
方法四:(方法三的升华)利用
GetDlgItemText()和SetDlgItemText()

int numA, numB, numC;	char chA[10], chB[10], chC[10];	GetDlgItemText(IDC_EDIT_A, chA, 10);	GetDlgItemText(IDC_EDIT_B, chB, 10);	numA = atoi(chA);	numB = atoi(chB);	numC = numA + numB;	itoa(numC, chC, 10);//10为十进制	SetDlgItemText(IDC_EDIT_C, chC);
方法五:用GetDlgItemInt()和
SetDlgItemInt(),
不用itoa()和atoi()类型
转换

int numA, numB, numC;	numA = GetDlgItemInt(IDC_EDIT_A);	numB = GetDlgItemInt(IDC_EDIT_B);	numC = numA + numB;	SetDlgItemInt(IDC_EDIT_C, numC);
方法六:使用::SendMessage()

int numA, numB, numC;	char chA[10], chB[10], chC[10];	::SendMessage(GetDlgItem(IDC_EDIT_A)->m_hWnd, WM_GETTEXT, 10, (LPARAM)chA);	::SendMessage(GetDlgItem(IDC_EDIT_B)->m_hWnd, WM_GETTEXT, 10, (LPARAM)chB);	numA = atoi(chA);	numB = atoi(chB);	numC = numA + numB;	itoa(numC, chC, 10);//10为十进制	::SendMessage(GetDlgItem(IDC_EDIT_C)->m_hWnd, WM_SETTEXT, 10, (LPARAM)chC);
注:前两个WM_GETTEXT,后一个WM_SETTEXT

你可能感兴趣的文章
navicat导入.sql文件出错2006- MySQLserver has gone away
查看>>
Navicat导入海量Excel数据到数据库(简易介绍)
查看>>
Navicat工具Oracle数据库复制 or 备用、恢复功能(评论都在谈论需要教)
查看>>
Navicat工具中建立数据库索引
查看>>
navicat工具查看MySQL数据库_表占用容量_占用空间是多少MB---Linux工作笔记048
查看>>
navicat怎么导出和导入数据表
查看>>
Navicat怎样同步两个数据库中的表
查看>>
Navicat怎样筛选数据
查看>>
Navicat报错connection is being used
查看>>
Navicat报错:1045-Access denied for user root@localhost(using passwordYES)
查看>>
Navicat控制mysql用户权限
查看>>
navicat操作mysql中某一张表后, 读表时一直显示正在载入,卡死不动,无法操作
查看>>
Navicat连接mysql 2003 - Can't connect to MySQL server on ' '(10038)
查看>>
Navicat连接mysql数据库中出现的所有问题解决方案(全)
查看>>
Navicat连接Oracle出现Oracle library is not loaded的解决方法
查看>>
Navicat连接Oracle数据库以及Oracle library is not loaded的解决方法
查看>>
Navicat连接sqlserver提示:未发现数据源名并且未指定默认驱动程序
查看>>
navicat连接远程mysql数据库
查看>>
Navicat通过存储过程批量插入mysql数据
查看>>
Navicat(数据库可视化操作软件)安装、配置、测试
查看>>