用基于MFC对话框编写的计算器
时间:2026-04-30
时间:2026-04-30
用MFC构建一个对话框,实现计算器的加减乘除。
用基于MFC对话框编写的计算器
1. 用MFC建立一个基于对话框的应用程序;
2. 程序主代码:
// CalculatorDlg.h : 头文件
#pragma once
#include "afxwin.h"
// CCalculatorDlg 对话框
class CCalculatorDlg : public CDialog {
// 构造
public:
CCalculatorDlg(CWnd* pParent = NULL);// 标准构造函数
用MFC构建一个对话框,实现计算器的加减乘除。
// 对话框数据
enum { IDD = IDD_CALCULATOR_DIALOG };
int sign, decimal;
double m_Num;
double num1, num2; //操作数
char cal; //运算符号
BYTE dotflag; //小数点标志
BYTE dotflag1;
BYTE numflag; //键入数字标志
long quan2; //小数部分权值
char cnum[20];
CString csnum;
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
HICON m_hIcon;
// 生成的消息映射函数
用MFC构建一个对话框,实现计算器的加减乘除。
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 OnBnClickedButton1Num0();
afx_msg void OnBnClickedButton2Num1();
afx_msg void OnBnClickedButton3Num2();
afx_msg void OnBnClickedButton4Num3();
afx_msg void OnBnClickedButton5Num4();
afx_msg void OnBnClickedButton6Num5();
afx_msg void OnBnClickedButton7Num6();
afx_msg void OnBnClickedButton8Num7();
afx_msg void OnBnClickedButton9Num8();
afx_msg void OnBnClickedButton10Num9();
afx_msg void OnBnClickedPoint();
afx_msg void OnBnClickedEqual();
afx_msg void OnBnClickedAdd();
afx_msg void OnBnClickedSub();
afx_msg void OnBnClickedMul();
用MFC构建一个对话框,实现计算器的加减乘除。
afx_msg void OnBnClickedDiv();
afx_msg void OnBnClickedButtonEmpty();
afx_msg void OnEnChangeEdit1();
CEdit m_CResult;
};
// CalculatorDlg.cpp : 实现文件
//
#include "stdafx.h"
#include "Calculator.h"
#include "CalculatorDlg.h"
//#include "math.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// 用于应用程序“关于”菜单项的CAboutDlg 对话框
用MFC构建一个对话框,实现计算器的加减乘除。
class CAboutDlg : public CDialog {
public:
// 对话框数据
protected: virtual void DoDataExchange(CDataExchange* pDX); // enum { IDD = IDD_ABOUTBOX }; CAboutDlg(); DDX/DDV 支持
// 实现
protected:
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD) {
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX) DECLARE_MESSAGE_MAP()
用MFC构建一个对话框,实现计算器的加减乘除。
{
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
END_MESSAGE_MAP()
// CCalculatorDlg 对话框
CCalculatorDlg::CCalculatorDlg(CWnd* pParent /*=NULL*/)
{
}
void CCalculatorDlg::DoDataExchange(CDataExchange* pDX) {
CDialog::DoDataExchange(pDX); m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); : CDialog(CCalculatorDlg::IDD, pParent) CDialog::DoDataExchange(pDX);
用MFC构建一个对话框,实现计算器的加减乘除。
} DDX_Control(pDX, IDC_EDIT1, m_CResult);
BEGIN_MESSAGE_MAP(CCalculatorDlg, CDialog)
ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() //}}AFX_MSG_MAP ON_BN_CLICKED(IDC_BUTTON1_NUM0,
&CCalculatorDlg::OnBnClickedButton1Num0)
ON_BN_CLICKED(IDC_BUTTON2_NUM1,
&CCalculatorDlg::OnBnClickedButton2Num1)
ON_BN_CLICKED(IDC_BUTTON3_NUM2,
&CCalculatorDlg::OnBnClickedButton3Num2)
ON_BN_CLICKED(IDC_BUTTON4_NUM3,
&CCalculatorDlg::OnBnClickedButton4Num3)
ON_BN_CLICKED(IDC_BUTTON5_NUM4,
&CCalculatorDlg::OnBnClickedButton5Num4)
ON_BN_CLICKED(IDC_BUTTON6_NUM5,
&CCalculatorDlg::OnBnClickedButton6Num5)
ON_BN_CLICKED(IDC_BUTTON7_NUM6,
&CCalculatorDlg::OnBnClickedButton7Num6)
用MFC构建一个对话框,实现计算器的加减乘除。
ON_BN_CLICKED(IDC_BUTTON8_NUM7,
&CCalculatorDlg::OnBnClickedButton8Num7)
ON_BN_CLICKED(IDC_BUTTON9_NUM8,
&CCalculatorDlg::OnBnClickedButton9Num8)
ON_BN_CLICKED(IDC_BUTTON10_NUM9,
&CCalculatorDlg::OnBnClickedButton10Num9)
ON_BN_CLICKED(IDC_POINT,
&CCalculatorDlg::OnBnClickedPoint)
ON_BN_CLICKED(IDC_EQUAL,
&CCalculatorDlg::OnBnClickedEqual)
ON_BN_CLICKED(IDC_ADD,
&CCalculatorDlg::OnBnClickedAdd)
ON_BN_CLICKED(IDC_SUB,
&CCalculatorDlg::OnBnClickedSub)
ON_BN_CLICKED(IDC_MUL,
&CCalculatorDlg::OnBnClickedMul)
ON_BN_CLICKED(IDC_DIV,
&CCalculatorDlg::OnBnClickedDiv)
ON_BN_CLICKED(IDC_BUTTON_EMPTY,
&CCalculatorDlg::OnBnClickedButtonEmpty)
ON_EN_CHANGE(IDC_EDIT1,
&CCalculatorDlg::OnEnChangeEdit1)
用MFC构建一个对话框,实现计算器的加减乘除。
END_MESSAGE_MAP()
// CCalculatorDlg 消息处理程序
BOOL CCalculatorDlg::OnInitDialog() {
// IDM_ABOUTBOX 必须在系统命令范围内。 ASSERT((IDM_ABOUTBOX & 0xFFF0) == // 将“关于...”菜单项添加到系统菜单中。 CDialog::OnInitDialog(); IDM_ABOUTBOX);
CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { CString strAboutMenu; strAboutMenu.LoadString(IDS_ABOUTBOX); i …… 此处隐藏:3612字,全部文档内容请下载后查看。喜欢就下载吧 ……