如何用VS2010 MFC制作一个简单的加法器
来源:互联网 发布:w7如何连接网络打印机 编辑:程序博客网 时间:2024/06/05 18:47
1.新建-->项目-->MFC-->MFC应用程序
名称:加法器(可自行设定)
位置:自行设定
点击确定。如图1所示。
图1 新建项目
2.进入到MFC应用程序向导界面。没有说明的就选择默认设置。
在“应用程序类型”中我们选择“基于对话框”选项,其他默认。然后点击确认。如图2所示。
图2 选择应用程序类型
3.进入到对话框设计,删除掉默认生成的按钮。添加如下图所示的按钮(Button),编辑框(Edit Control),组框(Group Box),静态正文框(Static Text)。如图3所示。相关参数如图4所示。
图3 对话框设计
图4 加法器各控件及其属性设置
4.界面做完了以后,就要开始编写程序了。
首先为各控件添加相关成员变量。项目-->类向导-->成员变量,分别为IDC_OPERATOR1,IDC_OPERATOR2和IDC_RESULT添加成员变量。例:双击IDC_OPERATOR1,在“成员变量名称”中输入m_fOperator1,在“类别”中选择Value,在“类型”中选择float,单击确定,成员变量m_fOperator1就被加入到变量列表中去了。其余类似。如图5所示。
图5 添加后的成员变量
5.为按钮添加功能实现函数。
项目-->类向导-->命令。分别为求和,清零添加响应的实现函数。
例:求和:IDC_ADD->BN_CLICKED->添加处理函数->编辑代码
void C加法器Dlg::OnClickedAdd()
{
UpdateData(true); //edit box中的值更新到变量中
m_fResult=m_fOperator1+m_fOperator2; //做加法运算
UpdateData(false); //变量的值更新到edit box显示
}
其中加黑的为自己添加的内容。
清零的相关消息响应函数类似。
void C加法器Dlg::OnClickedClear()
{
m_fOperator1=0.0f; //给变量赋值
m_fOperator2=0.0f;
m_fResult=0.0;
UpdateData(false); //变量的值更新到edit box显示
}
退出:
void C加法器Dlg::OnClickedCancel()
{
CDialog::OnCancel();
}
6.然后编译连接,最后检验一下编写的加法器。如图6所示。
图6 加法器使用实例
7.在制作过程中遇到的问题
在对话框中添加“求和”按钮后,双击了这个按钮,就生成了消息响应函数,然后在第5步中添加了重复的消息响应函数。觉着不对,就把双击生成的消息响应函数删除了,结果就报错了:
1>加法器Dlg.obj : error LNK2001: 无法解析的外部符号?"public: void __thiscall C加法器Dlg::OnBnClickedAdd(void)" (OnBnClickedAddC加法器Dlg@@QAEXXZ)
1>H:\DF\C\加法器\Debug\加法器.exe : fatal error LNK1120: 1 个无法解析的外部命令
最后发现是因为虽然删除了求和的消息响应函数,但是并没有完全删除,类头文件中的函数声明没有删除afx_msg void OnBnClickedAdd();,还有在BEGIN_MESSAGE_MAP()和END_MESSAGE_MAP()之间添加的消息响应函数ON_BN_CLICKED(IDC_ADD, C加法器Dlg::OnBnClickedAdd)没有删除。注释掉这两个之后,错误消失了。
如果还是报错出现1>加法器Dlg.obj : fatal error LNK1318: 非意外的 PDB 错误: OK (0)""
生成-->重新生成(Rebuild All)一下再试试看。
- 如何用VS2010 MFC制作一个简单的加法器
- 一个简单的MFC加法器
- 如何用VS2010创建一个简单的UI编码测试
- MFC实现一个简单的加法器
- 如何用Swift制作一个简单的画板APP
- 如何用MFC制作类似VS2005或VS2008的界面
- MFC 基于对话框的简单加法器
- 如何用CONSTRUCT 2制作简单的射击游戏
- 如何用VC、MFC开发一个尽可能小的程序???
- 如何用Construct2制作简单HTML游戏
- 如何用ACCESS制作一个数据库?
- 如何用busybox制作一个自己文件系统
- 如何用construct2制作一个游戏?
- 如何用C#写一个简单的Login窗口
- 如何用C#写一个简单的Login窗口
- 如何用C#写一个简单的Login窗口
- 如何用C#写一个简单的Login窗口
- 如何用C#写一个简单的Login窗口
- Qt的main函数参数使用注意问题
- hdu 1754 I Hate It
- 使用OSChina代码托管管理项目(一)
- JavaScript语言学习以及部分ThreeJs分析
- IDC:给企业建站租用服务器的建议
- 如何用VS2010 MFC制作一个简单的加法器
- HOJ 12822 The Alphabet Sticker
- linux目录权限为“777”时绿色过亮字体看不清问题
- Android开发学习1 - Android架构
- What you may need to know while calling Application Module methods from Java EE components such as E
- 关于hive RegexSerDe的源码分析
- Java基础温习 (7)Java抽象类和接口的学习
- windows系统调用int 2e处理过程
- 互联网时代,企业培训管理如何创新?