win32强化练习2.1_简单加法计算器(界面文本与数据的读取和显示)

本文介绍如何在Windows对话框程序中实现界面与数据的交互,包括使用SetDlgItemInt和GetDlgItemInt函数来显示和获取整数数据,以及通过不同方法转换字符串与数值。

界面制作与数据的显示和获取

一个窗口程序由界面+功能组成。

对话框程序很常用的原因之一就是有所见即所得的资源编辑器;

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分钟内完成。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值