MFC加减错误,请高手指点!

小弟初学MFC, 下面代码不知道为什么,结果为正数时正确,但减到负数时结果错误,请指点,不胜感激!
GetDlgItem(IDC_EDIT_SPD_Z)->GetWindowText(str1);
a = (const char *)str1.GetBuffer();
str1.Format(_T("%d"),atoi(a) - atoi("1"));
GetDlgItem(IDC_EDIT_SPD_Z)->SetWindowText(str1);

减法本身不会有错误。

你这个代码本身就是麻烦了些,而且容易造成问题。CString在GetBuffer之后要释放Buffer再进行其它操作(但释放后你那个a就得不到了)


你这个需求,最简单的办法是对编辑框绑定一个int类型变量。

如果希望用字符串,那么:

GetDlgItem(IDC_EDIT_SPD_Z)->GetWindowText(str1);
str1.Format(_T("%d"),_ttoi(str1) - 1);
 GetDlgItem(IDC_EDIT_SPD_Z)->SetWindowText(str1);

温馨提示:内容为网友见解,仅供参考
无其他回答

mfc建立了一个计算器,有数字加减乘除按钮,如果我想在除0的时候报错,需 ...
可以在输入除数后,if判断下,是不是0 ,是的话弹出提示框,MessageBox(“ 提示信息”)。或者也可以在程序中加try ,系统来捕获异常 try{ \/\/可能出错的代码}catch (Excetion e){ MessageBox.Show(e);}不懂再问了

MFC 计算器的问题,等号那块不能实现加减乘除 求思路和代码!
这个很简单。使用类向导对等号那个按钮,添加单击响应消息,在自动生成的xxDlg::OnClickedButton1()函数体中添加如下代码:首先取得编辑框的字符串进行分析,如果是加号,则进行加法运算。CString num; \/\/从编辑框获取的字符串CString num1,num2; \/\/获取的加数和被加数字符串CString operat ; \/\/运算...

不明白如下MFC代码 请高手指点
ifdef _AFXDLL Enable3dControls(); \/\/ Call this when using MFC in a shared DLL else Enable3dControlsStatic(); \/\/ Call this when linking to MFC statically endif \/\/以下是你的主对话框的产生 用的是模态对话框的形式 CMyDlg dlg;m_pMainWnd = &dlg;int nResponse = dlg.DoModal();if...

关于MFC绘图中的一个问题,请高手指点,非常感谢!
CArray是空数组,构造函数CArray() ,定义一个数组点 CArray<CPoint,CPoint> ptArray;增加元素 CPoint pt(10,20);ptArray.Add(pt); \/\/ Element 0 ptArray.Add(CPoint(30,40)); \/\/ Element 1 你的 是CArray(Shape) ,应该是 Shape类型的问题 ,至于下面的提示 失踪的存储种类或...

关于MFC的 高手指点
CDialog dlg;CDialog *dlg1;dlg调用对话框类成员的时候用。 而dlg1调用的时候只能用—> 。因为dlg1中存的是对话框对象的地址

MFC编程中出现:该内存不能为written
没有学过MFC,不过MFC用的是C++,在C++中,如果读写未分配的内存会出现这个问题。这个错误应该就是没有为某个变量分配内存空间,或者访问的时间超过了内存的范围。比如说声明了一个指针变量,但没有用malloc为其分配内存,直接使用该指针变量,就会出现这个错误。

如何把C代码在MFC里正确输入,大家看看,求高手指点啊
1.ATL 一般是为编写 COM组件 或服务程序提供向导 2.资源文件 一般为DLL文件 3.自定义向导 4.数据工程 (数据库相关)...大多数初学者只需用到MFC AppWizard(DLL\\EXE)就是MFC动态链接库或MFC应用程序,然后输入一个工程名字点"确定进入下一步",然后逐步选择你要创建的程序的一写基本功能或风格...

...里的MFC单文档程序,拖动滚动条时图形重叠。如下图,请高手指点...
没有刷新背景导致的。这个是图像残留。当窗口移动时,你要自己刷新。这里有个例子。

MFC编程时出现如下错误error C2679: binary '=' : no operator defined...
; 后面就不要加endl了 cin>>F;

请MFC高手指点,为什么我的ON
没有MFC支持是因为你装了速成版(ExpressEdition),这个版本官方免费,但是不支持MFC。想要用MFC,又要用2005,那就去软件区看看吧---如果可以舍弃2005不用,我个人还是建议用2003或者VC6。

相似回答
大家正在搜