实例:Windows标准控件在可视化编程中的应用

利用MFC编写一个简单的四则运算器。程序基于Dialog,用户提供2个操作数和一个操作符(+,-,*,/);程序进行计算并显示运算结果,显示结果的控件不接收用户输入。

 

 

 

 

 

运行窗口

 

 

 

计算结果的整数后带小数点的情况

 

 

计算结果的整数后不带小数点的情况

 

 

 

 

 

 

实验分析与总结:

1) 调用UpdateData()函数时要特别注意拼写,否则很容易出现“error C2065: 'UpdataData' : undeclared identifier”;

2) UpdateData()函数是用来刷新数据的UpdateData(TRUE) 刷新控件的值到对应的变量UpdateData(FALSE)拷贝变量值到控件显示

3)如果编辑框风格选中了Number,则只能输入整型数据;

4switch语句中,case后面可以是整型或单引号内加字符,注意是单引号而不是双引号;

5gcvt函数的功能是把浮点数转换成字符串,将把十进制整型数据用gcvt函数转换得到的字符串拷贝到控件,显示出来的整数后面会带有小数点,那是因为小数点也是字符;为了去掉整数后面的小数点,可以在gcvt函数所在的语句后面加上“int i=strlen(cBuffer)-1; if(cBuffer[i]=='.')cBuffer[i]=0;”把小数点去掉;

6GetWindowText函数原型:Int GetWindowTextHWND hWndLPTSTR lpStringInt nMaxCount);其中IpString指向接收文本的缓冲区的指针,本题中需要调用该函数将四则运算符号拷贝到缓冲区,就要用“&”取char变量地址作为指针,否则会出现错误。

 

OnButtonCalculate的函数代码如下:

void CWeek7Dlg::OnButtonCalculate() 

{

char item1[10],item2[10],op;

double dfitem1, dfitem2, dfresult;

char cBuffer[10];

 

m_ITEM1_EDIT.GetWindowText(item1,10);

m_ITEM2_EDIT.GetWindowText(item2,10);

m_OPSIGN_EDIT.GetWindowText(&op,10);

 

dfitem1=atof((LPCTSTR)item1);

dfitem2=atof((LPCTSTR)item2);

 

switch(op)

{

case '+': dfresult=dfitem1+dfitem2;break;

case '-': dfresult=dfitem1-dfitem2;break;

case '*': dfresult=dfitem1*dfitem2;break;

case '/': dfresult=dfitem1/dfitem2;break;

default:break;

}

 

_gcvt(dfresult,10,cBuffer);

 

int i=strlen(cBuffer)-1; 

    if(cBuffer[i]=='.')cBuffer[i]=0;

 

m_RESULT_EDIT=(LPCTSTR)cBuffer;

 

UpdateData(FALSE);

}

 

OnButtonExit的函数代码如下:

void CWeek7Dlg::OnButtonExit() 

{

OnOK();

}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值