MFC简易计算器,怎么实现退格功能,请问一下思路?

2025-01-04 05:17:44
推荐回答(2个)
回答1:

这要看你的编辑框关联的是什么变量。
如果是字符串,那么m_str = m_str.Left(m_str.GetLength()-1);一个语句搞定。
如果是数值型,那么就比较麻烦了。先要判断是否有小数点,
没有就直接m_double = (int)m_double /10;
有小数点,纯数字运算做一个循环吧,每次乘以10,判断是否和强制int相等,直到相等了,取前一次的数值(小数点后一位)强制int,然后除以n-1个10就ok

回答2:

不是有CEdit控件么?可以用控件撒。但是你一定要按你说的话呢 。也是可以的。只是有点麻烦。
先创建一个窗口。再在窗口上创建光标。再创建一个CStringArray类每当你输入一个字符时就把字符存入CstirngArray对象中。当按下的是删除键是就把药删除的字符移除掉。如果你不知道怎么移除呢。那你还的去看看CStirngArray的方法。要是你想删除中间的呢。也好办。。当你的光标移动到中间位置按下删除键时。就算下一光标到字符开始输出的位置(及就是你的第一个字符的位置)的长度(像素为单位的)。最后在用一个加一循逐渐从你的CStringArray对象中取出字符用dc中的GetExtent计算出单给你从前边算出来的像素一样是的字符序号。然后删除就OK啦。