在MFC中是否有与GetDlgItemInt()类似的函数?

我想用MFC编写一个计算器程序,用GetDlgItemInt()只能获取控件的整数,我想获取控件是float或double,不知道怎样实现,从而实现小数的运算... 我想用MFC编写一个计算器程序,用GetDlgItemInt()只能获取控件的整数,我想获取控件是float或double ,不知道怎样实现,从而实现小数的运算 展开
 我来答
zhccsd
2013-08-15 · TA获得超过4042个赞
知道大有可为答主
回答量:1347
采纳率:66%
帮助的人:896万
展开全部
如果是想获取编辑框的话,给编辑框绑定一个double类型的变量比如m_dbval,若想获取编辑框中的内容就执行UpdateData(true);如果编辑框上面的数字是小数,那么这个函数会自动把数字赋值给m_dbval,直接用m_dbval就可以了,如果不是小数比如aaa之类的,会提示用户只接受小数类型
绑定的操作:右键单击控件,点classwizard,点到member variable页面,然后在控件列表中选中编辑框,然后点add member variable,变量类型选择double即可
追问
edit控件可以关联一个float变量,但我有两个疑问,疑问一:目前我所编写的程序是通过button控件 输入数字,通过鼠标点击某一个button ,将这个button控件关联成员函数,这样可以对edit关联的float函数赋值吗?不知道这样是否可行?疑问二:如果通过点击edit控件输入数字,应该edit无法响应运算符的“+”“-”*“/等一系列操作
追答
一,这样做可行,虽然这样复杂一点,但是更接近真实的计算器。
当按下0-9数字按钮,取编辑框内容,比如编辑框是5,按了6,那么编辑框的变量赋值为5*10+6并显示到编辑框中
当按下 ‘点’,判断当前是否小数,如果已经是小数了,就不做任何改动,如果不是,则从整数升级为小数:123变成123.0
当按下运算符,把编辑框数据取出并记录下,清空变量,等待用户输入第二个运算数,如果当前已经是第二个运算数,则先进行运算,把结果作为第一个运算数,清空编辑框。
二:这个思路可以引出更高端的计算器设计的终极思路,就是用户输入一串表达式,里面包含多个操作数和操作符以及括号,然后统一计算内容,这会用到表达式求值,可以用堆栈解决,不过还是比较复杂的
匿名用户
2013-08-16
展开全部
有个曲折的办法可用,先GetWindowText();再用atof();之类的转换成数字,当然小数点也是可以编程判断的....
追问
我想用edit 控件作为计算器的屏幕显示,通过鼠标点击 button 控件,输入数字, 如果用GetDlgItemText获取文体消息,再采用atof,转换为float数据,另外得需要将float数据转换成字符串,并使用SetDlgItemText,显示输出到edit控件上,可没有ftoa这样的函数?这该怎么办呢?
追答
你可以响应button啊,大概思路是这样,你自己考虑能不能行得通

float a=0;int Dt = 0;

OnButton1()
{
if(Dt == 1)//如果按了小数点那个键

a = a+0.1

else

a = a*10+1
}
OnButton2()
{
if(Dt == 1)

a = a+0.2

else

a = a*10+2

}
....
OnButtonDt()
{
Dt = 1;

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友b0db494
2013-08-16 · TA获得超过257个赞
知道小有建树答主
回答量:181
采纳率:0%
帮助的人:161万
展开全部
控件值的获取应该是用变量关联控件,使用UpdateData进行变量和控件间的传递
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式