win32强化练习2.1_简单加法计算器(界面文本与数据的读取和显示)
2016-11-19 11:11
281 查看
界面制作与数据的显示和获取
一个窗口程序由界面+功能组成。
对话框程序很常用的原因之一就是有所见即所得的资源编辑器;
VS的资源编辑器很好用,而免费的ResEdit也很好用(搜索ResEdit即可);
这一节最主要的是了解如何从界面上获取数据,又如何把数据显示在界面上。
(字符串) SetDlgItemTextGetDlgItemText
(整数) SetDlgItemInt GetDlgItemInt
其中,Text使用更常见一些,而整数的使用更简便一些。
完成后的程序就是这个样子:
1. 使用int非常简便:
2. 使用字符串需要将字符串与数值之间进行转换,至少有2种方式可以使用:
2.1 使用atoi, itoa函数
2.2 使用sscanf,sprintf函数(如果界面上真的会输入AE FF这类16进制的数字,上面的atoi是会挂掉的!)
sscanf(str1,"%d",&iPlus1); //替换iPlus1 = atoi(str1);
sscanf(str2,"%d",&iPlus2); //替换iPlus2 = atoi(str2);
sprintf(strOut,"%d",iOut); //替换itoa(iOut, strOut, 10);
这一节,主要是加深对界面文本转换成数字并进行计算,然后把计算结果再以文本形式显示在界面上的理解,对于Windows窗口程序,做的很多的事情就是需要用户输入,并把用户输入的文本转换成程序可以使用的数据类型,然后反馈给用户。
这个练习可以用对话框模板进行,界面简单制作在2~3分钟左右,程序的编写应该控制在3分钟内完成。
一个窗口程序由界面+功能组成。
对话框程序很常用的原因之一就是有所见即所得的资源编辑器;
VS的资源编辑器很好用,而免费的ResEdit也很好用(搜索ResEdit即可);
这一节最主要的是了解如何从界面上获取数据,又如何把数据显示在界面上。
(字符串) SetDlgItemTextGetDlgItemText
(整数) SetDlgItemInt GetDlgItemInt
其中,Text使用更常见一些,而整数的使用更简便一些。
UINT GetDlgItemInt(HWND hDlg,int nlDDlgltem,BOOL *IpTranslated,BOOL bSigned); (1)hDlg:指向含有利益控制的对话框的句柄。 (2)nlDDlgltem:指定文本将被转变的控制的对话项目标识符。 (3)IpTranslated:指向一个Boolean变量的指针。该变量保存函数成功/失败的值。 TRUE表示成功,FALSE表示失败。此参数为可选的。它可以为NULL。 (4)bSigned:指定函数足否在开始时为一个最小的消息检测文本,且如果发现一个消息整型值,则返回它。 TRUE指定应该这样做,FALSE指定不应该这样做。 BOOL SetDlgItemInt(HWND hDlg,int nIDDlgItem,UINT uValue,BOOL bSigned); (1)hDlg:指向对话框窗口的句柄。 (2)nIDDlgItem:要改变其文本的控件ID。 (3)uValue:指向要设置的值。 (4)bSigned:指定uValue是否为一个有符号的值。
完成后的程序就是这个样子:
1. 使用int非常简便:
//获取字符串输入 //将字符串转换为数字进行计算 int iPlus1,iPlus2,iOut; iPlus1 = GetDlgItemInt(hwnd, IDC_EDIT1,NULL,0); iPlus2 = GetDlgItemInt(hwnd, IDC_EDIT2,NULL,0); iOut = iPlus1 + iPlus2; //将计算结果转换成字符串输出 SetDlgItemInt(hwnd, IDC_EDIT3,iOut,0);
2. 使用字符串需要将字符串与数值之间进行转换,至少有2种方式可以使用:
2.1 使用atoi, itoa函数
//获取字符串输入 CHAR str1[10]= {0},str2[10]={0}; GetDlgItemText(hwnd,IDC_EDIT1,str1,sizeof(str1)); GetDlgItemText(hwnd,IDC_EDIT2,str2,sizeof(str2)); //将字符串转换为数字进行计算 int iPlus1,iPlus2,iOut; iPlus1 = atoi(str1); iPlus2 = atoi(str2); iOut = iPlus1 + iPlus2; //将计算结果转换成字符串输出 CHAR strOut[10] = {0}; itoa(iOut, strOut, 10); SetDlgItemText(hwnd, IDC_EDIT3, strOut);
2.2 使用sscanf,sprintf函数(如果界面上真的会输入AE FF这类16进制的数字,上面的atoi是会挂掉的!)
sscanf(str1,"%d",&iPlus1); //替换iPlus1 = atoi(str1);
sscanf(str2,"%d",&iPlus2); //替换iPlus2 = atoi(str2);
sprintf(strOut,"%d",iOut); //替换itoa(iOut, strOut, 10);
这一节,主要是加深对界面文本转换成数字并进行计算,然后把计算结果再以文本形式显示在界面上的理解,对于Windows窗口程序,做的很多的事情就是需要用户输入,并把用户输入的文本转换成程序可以使用的数据类型,然后反馈给用户。
这个练习可以用对话框模板进行,界面简单制作在2~3分钟左右,程序的编写应该控制在3分钟内完成。
相关文章推荐
- 1. 简单的加法计算器,用户在文本框1,2中输入两个数,点击按钮,在文本框3中显示两个数的和。如果1或者2为错误的数据格式,则弹出对话框提示错误。
- 2.读取TXT文本内容,显示至图形界面中
- Android 使用RxJava+Retrofit +Realm 组合加载数据 <读取缓存 显示 请求网络数据 缓存最新数据 更新界面>(二)
- 从AVI中读取每帧数据显示到界面
- 交换数据学习一:将xml文本读取到DataSet并显示
- python简单练习 -统计文本词频并用柱状图显示
- ASP.NET Web Pages基础知识---从文本文件中读取并显示数据
- Android中读取一个txt文本文件,然后显示到界面上的操作
- jsp简单的计算器如何在本页显示数据
- C# 读取文本内容,在Dev控件中显示数据
- C# 读取文本内容,在Dev控件中显示数据--<续>
- Android 使用RxJava+Retrofit +Realm 组合加载数据 <读取缓存 显示 请求网络数据 缓存最新数据 更新界面>(一)
- C++ 从数据库读取数据,将数据显示在界面上的TreeCtrl上
- 读取文本数据2.1
- Ajax的一个简单例子--从一个文件文件中读取数据显示到页面中
- win32 带登录界面的最简单版本计算器
- kotlin在主程序中提交数据到fragment中并显示的简单练习
- 读取文本数据2.1
- win32强化练习2.3_四则计算器(组合框控件)
- c++简单读写文本,统计文件的行数,读取文件数据到数组