您的位置:首页 > 其它

如何用VS2010 MFC制作一个简单的加法器

2014-08-01 17:15 381 查看
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)一下再试试看。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: