工控编程吧
标题:
186上位机VC MFC字符串对比加减转换整形相关控制
[打印本页]
作者:
qq263946146
时间:
2016-1-23 20:48
标题:
186上位机VC MFC字符串对比加减转换整形相关控制
(, 下载次数: 1)
上传
点击文件名下载附件
186上位机VC MFC字符串对比加减转换整形相关控制
功能展示
在涉及参数保存打开操作时就会用到字符串相关的编程,我们当前例程罗列出常用字符串操作功能实现,如字符串的相加,比较,提取,字符串的总长度宽度获取,整数浮点数转为字符串等等的操作,效果如图;
要点提示
字符串的相关操作我们一般用Cstring内的成员函数,字符串对比操作可以用函数CompareNoCase()或Compare();
指定字符串的总长度和宽度可以用CDC的成员函数GetTextExtent()获得;
字符串的格式化可以用Cstring的成员函数Format(),此函数共有两参数,参数一为格式化控制,参数二为受格式化对象;
格式化控制有
%c 单个字符
%d 十进制整数(int)
%ld 十进制整数(long)
%f 十进制浮点数(float)
%lf 十进制浮点数(double)
%o 八进制数
%s 字符串
%u 无符号十进制数
%x 十六进制数
实现功能
1.新建基于对话框的应用程序
2.拖拽两编辑框控件用于输入字符串转换用;
3.依次添加按钮控件,字符串相加保存,字符串比较保存,字符串提取保存,字符串长宽获取,字符串格式化,整数int转为字符串,浮点数float转为字符串,字符串赋值给字符指针,按钮控件函数为
void CGkbc8Dlg::OnAdd()
{
CString sText1,sText2;
GetDlgItemText(IDC_EDIT1,sText1);
GetDlgItemText(IDC_EDIT2,sText2);
sText1+=sText2;//字符串相加
SaveLog(sText1);//结果字符串保存到文件
MessageBox(sText1,"");
}
void CGkbc8Dlg::OnFormat()
{
CString sText1,sText2;
GetDlgItemText(IDC_EDIT1,sText1);
GetDlgItemText(IDC_EDIT2,sText2);
//
CString sText;
sText.Format("%s--%s",sText1,sText2);
SaveLog(sText);//结果字符串保存到文件
MessageBox(sText,"信息提示",MB_OK);
复制代码
void CGkbc8Dlg::OnCompare()
{
CString sText1,sText2;
GetDlgItemText(IDC_EDIT1,sText1);
GetDlgItemText(IDC_EDIT2,sText2);
if(sText1.CompareNoCase(sText2)==0)
{
sText1+="相同于(使用CompareNoCase比较)";
sText1+=sText2;
SaveLog(sText1);//结果字符串保存到文件
MessageBox(sText1,"信息提示",MB_OK);
}
if(sText1.Compare(sText2)!=0)
{
sText1+="不同于(使用Compare比较)";
sText1+=sText2;
SaveLog(sText1);//结果字符串保存到文件
MessageBox(sText1,"信息提示",MB_OK);
}
}
void CGkbc8Dlg::OnGet()
{
CString sText1,sText2;
GetDlgItemText(IDC_EDIT1,sText1);
GetDlgItemText(IDC_EDIT2,sText2);
int nIndex=sText1.Find(sText2);
if(-1 != nIndex)//字符串sText1中找到sText2时
{
CString sText;
sText.Format("%d--%d",nIndex,nIndex+sText2.GetLength()-1);
sText2+=" 在 ";
sText2+=sText1;
sText2+=" 的字节范围为:";
sText2+=sText;
SaveLog(sText2);//结果字符串保存到文件
MessageBox(sText2,"信息提示",MB_OK);
}
}
}
复制代码
void CGkbc8Dlg::OnInt()
{
CString sText1,sText2;
GetDlgItemText(IDC_EDIT1,sText1);
//
int iDigital=atoi(sText1)+123456;
sText2.Format("%d",iDigital);
SetDlgItemText(IDC_EDIT2,sText2);
SaveLog(sText2);//结果字符串保存到文件
MessageBox(sText2,"信息提示",MB_OK);
}
void CGkbc8Dlg::OnFloat()
{
CString sText1,sText2;
GetDlgItemText(IDC_EDIT1,sText1);
//
float iFloat=atof(sText1)+123.45;
sText2.Format("%f",iFloat);
SetDlgItemText(IDC_EDIT2,sText2);
SaveLog(sText2);//结果字符串保存到文件
MessageBox(sText2,"信息提示",MB_OK);
}
void CGkbc8Dlg::OnValue()
{
CString sText1;
//
LPTSTR lpszText = _T("LPTSTR >> CString");
sText1.Format( _T("%s"), lpszText );
SetDlgItemText(IDC_EDIT2,sText1);
SaveLog(sText1);//结果字符串保存到文件
MessageBox(sText1,"信息提示",MB_OK);
}
复制代码
void CGkbc8Dlg::OnStrsize()
{
CString sText1,sText2;
GetDlgItemText(IDC_EDIT1,sText1);
GetDlgItemText(IDC_EDIT2,sText2);
//
CDC *pDC=GetDC();
CSize Size=pDC->GetTextExtent(sText1,sText1.GetLength());
CSize Size1=pDC->GetTextExtent(sText2,sText2.GetLength());
CString StrSize;
StrSize.Format("字符串长宽分别为:%d:%d--%d:%d",Size.cx,Size.cy,Size1.cx,Size1.cy);
SaveLog(StrSize);//结果字符串保存到文件
MessageBox(StrSize,"信息提示",MB_OK);
}
复制代码
我们来演示整个功能实现过程
[iqiyi]http://player.video.qiyi.com/59606f02647e68a358ccdb37022488e9/0/0/w_19rteiejnt.swf-albumId=5230187109-tvId=5230187109-isPurchase=0-cnId=12[/iqiyi]
(, 下载次数: 0)
上传
点击文件名下载附件
[note]1[/note]
欢迎光临 工控编程吧 (https://www.gkbc8.com/)
Powered by Discuz! X3.4