您好,欢迎访问三七文档
当前位置:首页 > 临时分类 > GetDlgItemText
1(二)GetDlgItemText获得用户输入的数据-基础知识1、获得数据例:GetDlgItemText(hwnd,IDC_EDTNAME,str1,sizeof(str1));(需定义一个TCHER类型的变量str1注:Windows编程中一般都用TCHAR代替char。TCHAR有时候就是char,解决Unicode、中文编码问题。)-注释:GetDlgItemText:GetDlgItem主要是获取对话框上的句柄,通过获取对话框上的句柄可以获取句柄上的信息Dlg:Dialog的缩写,就是对话框Hwnd:返回窗体或控件的句柄IDC_EDTNAME:控件IDsizeof:sizeof(...)是运算符,在头文件中typedef为unsignedint,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的空间,返回值跟对象、结构、数组所存储的内容没有关系。具体而言,当参数分别如下时,sizeof返回的值表示的含义如下:数组——编译时分配的数组空间大小;指针——存储该指针所用的空间大小(存储该指针的地址的长度,是长整型,应该为4);类型——该类型所占的空间大小;对象——对象的实际占用空间大小;函数——函数的返回类型所占的空间大小。函数的返回类型不能是void。(关于Sizeof与Strlen的区别与联系请参考拓展栏目)str1:申请接受字符串内容的字符变量名str1-意义:获取控件EDTNAME获取对话框上指定控件的信息并保存在str1中-格式:GetDlgItemText(hwnd,控件ID,变量名(储存到这个变量里),sizeof(变量名(储存到这个变量里)));22、wsprintf用法例:wsprintf(msg,%s你好,name);(需定义一个TCHER类型的变量msg、name注:Windows编程中一般都用TCHAR代替char。TCHAR有时候就是char,解决Unicode、中文编码问题。)-注释:wsprintf:格式化字符串函数msg:被格式化的字符变量名msg%s你好:在msg字符串中添加“你好”字符串name:接受被添加修改字符串的字符变量名name-意义:添加“你好”在字符变量msg中并保存在字符变量name中-格式:wsprintf(缓冲区,格式,要格式化的值);-详情:在C语言中格式化字符串可以使用printf,但是在WINDOWS编程设计中却行不通了,但是却有变通的方法,那就是用wsprintf这个函数它的格式如下:wsprintf(缓冲区,格式,要格式化的值);第一个参数是字符缓冲区,后面是格式字符串,wsprintf不是将格式化结果写到标准输出,而是将其写入缓冲区中,该函数返回该字符串的长度。比如我们想通过MessageBox来输出一个整形变量的值,可以用以下代码实现:charszBuffer[100];ingnumber=100;wsprintf(szBuffer,“%d”,number);MessgaeBox(NULL,szBrffer,TEXT(“格式化字符串”),0);这个函数除了将内容格式化输出到第一个参数所提供的字符串缓冲区以外,其它功能与printf函数相同wsprintf对应的字符串是宽字符型wchar_t,即一个字符占用2个字节的内存空间.sprintf对应的字符串是字符类型为char,几一个字符占用1个字节的内存空间.sprintf是用于对ASCII码的127个字符进行操作,wsprintf是对UNICODE的多语言字符进行操作.3如:sprintf(buffer,ascii);wsprintf(buffer,Lunicode);注:以上wsprintf详情内容参考:、修改控件文本-SetDlgItemText函数的用法例:SetDlgItemText(hwnd,IDC_EDTRESULT,SS);(需定义一个TCHER类型的变量SS注:Windows编程中一般都用TCHAR代替char。TCHAR有时候就是char,解决Unicode、中文编码问题。)-注释:SetDlgItemText:该函数设置对话框中控件的文本和标题。hwnd:返回窗体或控件的句柄IDC_EDTRESULT:修改控件的IDSS:该变量内容为修改控件文本-意义:修改控件EDTRESULT的文本为SS变量中的文本-格式:SetDlgItemText(hwnd,被修改的控件ID,修改文本储存的变量);-拓展:1、Sizeof与Strlen的区别与联系:Sizeof:sizeof(...)是运算符,在头文件中typedef为unsignedint,其值在编译时即计算好了,参数可以是数组、指针、类型、对象、函数等。它的功能是:获得保证能容纳实现所建立的最大对象的字节大小。由于在编译时计算,因此sizeof不能用来返回动态分配的内存空间的大小。实际上,用sizeof来返回类型以及静态分配的对象、结构或数组所占的空间,返回值跟对象、结构、数组所存储的内容没有关系。具体而言,当参数分别如下时,sizeof返回的值表示的含义如下:数组——编译时分配的数组空间大小;指针——存储该指针所用的空间大小(存储该指针的地址的长度,是长整型,应该为4);4类型——该类型所占的空间大小;对象——对象的实际占用空间大小;函数——函数的返回类型所占的空间大小。函数的返回类型不能是void。Strlen:strlen(...)是函数,要在运行时才能计算。参数必须是字符型指针(char*)。当数组名作为参数传入时,实际上数组就退化成指针了。它的功能是:返回字符串的长度。该字符串可能是自己定义的,也可能是内存中随机的,该函数实际完成的功能是从代表该字符串的第一个地址开始遍历,直到遇到结束符NULL。返回的长度大小不包括NULL。2、开始编一个加法计算器:1、流程:开始1得到字符串→2转换为int类型→3运算→4输出完成-注释:1、定义两个TCHAR变量A、B(TCHARA[256];和TCHARB[256];),绘制界面,创建文本框IDC_EDTNAME和,IDC_EDTNAME2;用之前学的函数GetDlgItemText获得值((GetDlgItemText(hwnd,IDC_EDTNAME,A,sizeof(A));和GetDlgItemText(hwnd,IDC_EDTNAME2,B,sizeof(B));)2、继续定义两个int变量SA、SB(intSA[256];和intSB[256];),再使用C语言标准函数库中的atoi(ASCIItoint)和itoa(inttoASCII)把A转换为int类型并存放在SA变量中(SA=atoi(A);),再把B转换为int类型并存放在SB变量中(SB=atoi(B);)(更多关于转换ASCII码,ASCII码请参考–拓展栏目)3、再定义一个int变量SC(intSC[256];),再把int类型变量SA、SB相加并存放在SC(SC=SA+SB;),再定义一个TCHAR变量JC(TCHARJC[256];),把SC重新转换为TCHAR类型,并存为JC(itoa(SC,JC,10;)4、绘制界面,再创建文本框IDC_EDTNAME3,再使用函数SetDlgItemText修改控件EDTNAME3的文本为JC(SetDlgItemText(hwnd,IDC_EDTNAME3,JC);)-源代码:3、ASCII码:ASCII编码即(AmericanStandardCodeforInformationInterchange)美国信息交换标准代码,国际上普遍采用作为通用的字符编码。5ASCII码对照表:4、更多转换ASCII码函数:1.itoa-原型:char*itoa(intvalue,char*string,intradix)-包含头文件:#include-功能:将整数value转换成字符串存入string,radix为转换时所用基数(保存到字符串中的数据的进制基数281016)6-说明:返回指向转换后的字符串的指针-格式:itoa(原变量,TCHAR变量,进制);-举例:itoa(number,string,10);(需定义一个TCHER类型的变量string,int类型的变量number注:Windows编程中一般都用TCHAR代替char。TCHAR有时候就是char,解决Unicode、中文编码问题。)-意义:把number转换为TCHAR类型变量string2.atoi-原型:intatoi(constchar*nptr)-功能:字符串转换到整型数:跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。-举例:c=atoi(a);(需定义一个TCHER类型的变量a,int类型的变量c注:Windows编程中一般都用TCHAR代替char。TCHAR有时候就是char,解决Unicode、中文编码问题。)-意义:把TCHAR变量a转换为int变量c3、更多关于字符转换的函数:-atof字符串转换到浮点型数原型:doubleatof(constchar*string);ASCIItofloat作用:将字符串转为double类型-ftoa函数作用:将double类型转为字符串7-atol字符串转换到长整型数-ecvt浮点型数转换到字符串,取四舍五入-fcvt浮点型数转换到字符串,取四舍五入-gcvt浮点型数转换到字符串,取四舍五入-strtod字符串转换到浮点型数-strtol字符串转换到长整型数-strtoul字符串转换到无符号长整型数-toascii将整形数转换合法的ASCII字符串对于以上函数,若字符串无法转化为合法的数值类型,函数将返回0。
本文标题:GetDlgItemText
链接地址:https://www.777doc.com/doc-2873717 .html