用基于MFC对话框编写的计算器

时间: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字,全部文档内容请下载后查看。喜欢就下载吧 ……

用基于MFC对话框编写的计算器.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:19 元/月 原价:99元
    低至 0.1 元/份 每月下载300
    全站内容免费自由复制
    VIP包月下载
    特价:19 元/月 原价:99元
    低至 0.1 元/份 每月下载300
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)