MFC实现简单功能计算器
作者:天涯 来源:中国自学编程网 发布日期:1229305098
第一步:利用MFC的AppWizard生成一个基于对话框的程序(本程序工程名为Calc),切换到Resource ,在Dialog中的IDD_CALC_DIALOG上双击,然后添控件按钮,做好外观布局,改好按钮ID和Caption;
第二步:为控件按钮增加相应的变量和事件响应函数;
第三步:在CCalcDlg类中添加相应变量;
第四步:对控件按钮的事件响应函数做处理;
代码如下:
第一部分(利用ClassWizard添加,可不必手动修改),在CalcDlg.h中的代码修改如下:
// CalcDlg.h : 头文件
//
#pragma once
// CCalcDlg 对话框
class CCalcDlg : public CDialog
{
// 构造
public:
CCalcDlg(CWnd* pParent = NULL); // 标准构造函数
// 对话框数据
enum { IDD = IDD_CALC_DIALOG };
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
HICON m_hIcon;
// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnBnClickedBtnnum0();
public:
afx_msg void OnBnClickedBtnnum1();
public:
afx_msg void OnBnClickedBtnnum2();
public:
afx_msg void OnBnClickedBtnnum3();
public:
afx_msg void OnBnClickedBtnnum4();
public:
afx_msg void OnBnClickedBtnnum5();
public:
afx_msg void OnBnClickedBtnnum6();
public:
afx_msg void OnBnClickedBtnnum7();
public:
afx_msg void OnBnClickedBtnnum8();
public:
afx_msg void OnBnClickedBtnnum9();
public:
afx_msg void OnBnClickedBtnopadd();
public:
afx_msg void OnBnClickedBtnopsub();
public:
afx_msg void OnBnClickedBtnopmulti();
public:
afx_msg void OnBnClickedBtnopdiv();
public:
afx_msg void OnBnClickedBtnopequal();
public:
afx_msg void OnBnClickedBtnclean();
public:
afx_msg void OnBnClickedBtnnumradix();
protected:
CString m_csEditText; //保存运算符右操作数的字符串,按下运算符按钮时将其赋给m_csFirstNumber,
//然后清空,从 新接收数字
CString m_csFirstNumber; //用来保存运算符的左操作数的字符串
bool m_bRadixFlag; //小数点标志,用来确保一个数字中只包含一个小数点
double m_dFirstNumber; //用来保存从m_csFirstNumber中提取出来的浮点数
double m_dSecondNumber; //用来保存按下运算符按钮更新后的m_csEditText所包含的浮点数字
double m_dResualt; //用来保存运算结果的浮点数
int m_nOperatorFlag; //用来标志运算符
char m_cInsetNumber