基于MFC的计算器C++程序.docx

上传人:b****5 文档编号:7180407 上传时间:2023-01-21 格式:DOCX 页数:21 大小:17.61KB
下载 相关 举报
基于MFC的计算器C++程序.docx_第1页
第1页 / 共21页
基于MFC的计算器C++程序.docx_第2页
第2页 / 共21页
基于MFC的计算器C++程序.docx_第3页
第3页 / 共21页
基于MFC的计算器C++程序.docx_第4页
第4页 / 共21页
基于MFC的计算器C++程序.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

基于MFC的计算器C++程序.docx

《基于MFC的计算器C++程序.docx》由会员分享,可在线阅读,更多相关《基于MFC的计算器C++程序.docx(21页珍藏版)》请在冰豆网上搜索。

基于MFC的计算器C++程序.docx

基于MFC的计算器C++程序

我自己编写的一个计算器程序,能够实现连续加减乘除运算,界面美观,学习简单,希望能帮到大家。

工程名为Firsttry,基于对话框设计

以下为对话框FirsttryDlg.h和FirsttryDlg.cpp

//FirsttryDlg.h:

头文件

//

#pragmaonce

//CFirsttryDlg对话框

classCFirsttryDlg:

publicCDialogEx

{

//构造

public:

CFirsttryDlg(CWnd*pParent=NULL);//标准构造函数

//对话框数据

enum{IDD=IDD_FIRSTTRY_DIALOG};

protected:

virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDV支持

//实现

protected:

HICONm_hIcon;

//生成的消息映射函数

virtualBOOLOnInitDialog();

afx_msgvoidOnSysCommand(UINTnID,LPARAMlParam);

afx_msgvoidOnPaint();

afx_msgHCURSOROnQueryDragIcon();

DECLARE_MESSAGE_MAP()

public:

afx_msgvoidOnBnClickedSub();

afx_msgvoidOnCalcDeci();

afx_msgvoidOnCalcHex();

afx_msgvoidOnBnClickedNumber1();

afx_msgvoidOnBnClickedNumber2();

afx_msgvoidOnBnClickedNumber3();

afx_msgvoidOnBnClickedNumber4();

afx_msgvoidOnBnClickedNumber5();

afx_msgvoidOnBnClickedNumber6();

afx_msgvoidOnBnClickedNumber7();

afx_msgvoidOnBnClickedNumber8();

afx_msgvoidOnBnClickedNumber9();

afx_msgvoidOnBnClickedNumber0();

afx_msgvoidOnBnClickedNumbera();

afx_msgvoidOnBnClickedNumberb();

afx_msgvoidOnBnClickedNumberc();

afx_msgvoidOnBnClickedNumberd();

afx_msgvoidOnBnClickedNumbere();

afx_msgvoidOnBnClickedNumberf();

afx_msgvoidOnBnClickedAdd();

afx_msgvoidOnBnClickedMul();

afx_msgvoidOnBnClickedDiv();

afx_msgvoidOnBnClickedEqual();

afx_msgvoidOnBnClickedBackspace();

afx_msgvoidOnBnClickedClear();

};

//FirsttryDlg.cpp:

实现文件

//

#include"stdafx.h"

#include"Firsttry.h"

#include"FirsttryDlg.h"

#include"afxdialogex.h"

#ifdef_DEBUG

#definenewDEBUG_NEW

#endif

CStringm_strNum1;

CStringm_strNum2;

CStringm_strOperation;

intm_iCalcMode;

//用于应用程序“关于”菜单项的CAboutDlg对话框

classCAboutDlg:

publicCDialogEx

{

public:

CAboutDlg();

//对话框数据

enum{IDD=IDD_ABOUTBOX};

protected:

virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDV支持

//实现

protected:

DECLARE_MESSAGE_MAP()

};

CAboutDlg:

:

CAboutDlg():

CDialogEx(CAboutDlg:

:

IDD)

{

}

voidCAboutDlg:

:

DoDataExchange(CDataExchange*pDX)

{

CDialogEx:

:

DoDataExchange(pDX);

}

BEGIN_MESSAGE_MAP(CAboutDlg,CDialogEx)

END_MESSAGE_MAP()

//CFirsttryDlg对话框

CFirsttryDlg:

:

CFirsttryDlg(CWnd*pParent/*=NULL*/)

:

CDialogEx(CFirsttryDlg:

:

IDD,pParent)

{

m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);

}

voidCFirsttryDlg:

:

DoDataExchange(CDataExchange*pDX)

{

CDialogEx:

:

DoDataExchange(pDX);

}

BEGIN_MESSAGE_MAP(CFirsttryDlg,CDialogEx)

ON_WM_SYSCOMMAND()

ON_WM_PAINT()

ON_WM_QUERYDRAGICON()

ON_BN_CLICKED(IDC_SUB,&CFirsttryDlg:

:

OnBnClickedSub)

ON_COMMAND(ID_CALC_DECI,&CFirsttryDlg:

:

OnCalcDeci)

ON_COMMAND(ID_CALC_HEX,&CFirsttryDlg:

:

OnCalcHex)

ON_BN_CLICKED(IDC_NUMBER1,&CFirsttryDlg:

:

OnBnClickedNumber1)

ON_BN_CLICKED(IDC_NUMBER2,&CFirsttryDlg:

:

OnBnClickedNumber2)

ON_BN_CLICKED(IDC_NUMBER3,&CFirsttryDlg:

:

OnBnClickedNumber3)

ON_BN_CLICKED(IDC_NUMBER4,&CFirsttryDlg:

:

OnBnClickedNumber4)

ON_BN_CLICKED(IDC_NUMBER5,&CFirsttryDlg:

:

OnBnClickedNumber5)

ON_BN_CLICKED(IDC_NUMBER6,&CFirsttryDlg:

:

OnBnClickedNumber6)

ON_BN_CLICKED(IDC_NUMBER7,&CFirsttryDlg:

:

OnBnClickedNumber7)

ON_BN_CLICKED(IDC_NUMBER8,&CFirsttryDlg:

:

OnBnClickedNumber8)

ON_BN_CLICKED(IDC_NUMBER9,&CFirsttryDlg:

:

OnBnClickedNumber9)

ON_BN_CLICKED(IDC_NUMBER0,&CFirsttryDlg:

:

OnBnClickedNumber0)

ON_BN_CLICKED(IDC_NUMBERA,&CFirsttryDlg:

:

OnBnClickedNumbera)

ON_BN_CLICKED(IDC_NUMBERB,&CFirsttryDlg:

:

OnBnClickedNumberb)

ON_BN_CLICKED(IDC_NUMBERC,&CFirsttryDlg:

:

OnBnClickedNumberc)

ON_BN_CLICKED(IDC_NUMBERD,&CFirsttryDlg:

:

OnBnClickedNumberd)

ON_BN_CLICKED(IDC_NUMBERE,&CFirsttryDlg:

:

OnBnClickedNumbere)

ON_BN_CLICKED(IDC_NUMBERF,&CFirsttryDlg:

:

OnBnClickedNumberf)

ON_BN_CLICKED(IDC_ADD,&CFirsttryDlg:

:

OnBnClickedAdd)

ON_BN_CLICKED(IDC_MUL,&CFirsttryDlg:

:

OnBnClickedMul)

ON_BN_CLICKED(IDC_DIV,&CFirsttryDlg:

:

OnBnClickedDiv)

ON_BN_CLICKED(IDC_EQUAL,&CFirsttryDlg:

:

OnBnClickedEqual)

ON_BN_CLICKED(IDC_BACKSPACE,&CFirsttryDlg:

:

OnBnClickedBackspace)

ON_BN_CLICKED(IDC_CLEAR,&CFirsttryDlg:

:

OnBnClickedClear)

END_MESSAGE_MAP()

//CFirsttryDlg消息处理程序

BOOLCFirsttryDlg:

:

OnInitDialog()

{

CDialogEx:

:

OnInitDialog();

//将“关于...”菜单项添加到系统菜单中。

//IDM_ABOUTBOX必须在系统命令范围内。

ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);

ASSERT(IDM_ABOUTBOX<0xF000);

CMenu*pSysMenu=GetSystemMenu(FALSE);

if(pSysMenu!

=NULL)

{

BOOLbNameValid;

CStringstrAboutMenu;

bNameValid=strAboutMenu.LoadString(IDS_ABOUTBOX);

ASSERT(bNameValid);

if(!

strAboutMenu.IsEmpty())

{

pSysMenu->AppendMenu(MF_SEPARATOR);

pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);

}

}

//设置此对话框的图标。

当应用程序主窗口不是对话框时,框架将自动

//执行此操作

SetIcon(m_hIcon,TRUE);//设置大图标

SetIcon(m_hIcon,FALSE);//设置小图标

//TODO:

在此添加额外的初始化代码

CMenu*pMenu=newCMenu;

pMenu->LoadMenu(IDR_CALCMODE);

SetMenu(pMenu);

pMenu->CheckMenuRadioItem(ID_CALC_DECI,ID_CALC_HEX,ID_CALC_DECI,MF_CHECKED);

m_iCalcMode=0;

m_strNum1.Empty();

m_strNum2.Empty();

m_strOperation.Empty();

GetDlgItem(IDC_NUMBERA)->EnableWindow(FALSE);

GetDlgItem(IDC_NUMBERB)->EnableWindow(FALSE);

GetDlgItem(IDC_NUMBERC)->EnableWindow(FALSE);

GetDlgItem(IDC_NUMBERD)->EnableWindow(FALSE);

GetDlgItem(IDC_NUMBERE)->EnableWindow(FALSE);

GetDlgItem(IDC_NUMBERF)->EnableWindow(FALSE);

returnTRUE;//除非将焦点设置到控件,否则返回TRUE

}

voidCFirsttryDlg:

:

OnSysCommand(UINTnID,LPARAMlParam)

{

if((nID&0xFFF0)==IDM_ABOUTBOX)

{

CAboutDlgdlgAbout;

dlgAbout.DoModal();

}

else

{

CDialogEx:

:

OnSysCommand(nID,lParam);

}

}

//如果向对话框添加最小化按钮,则需要下面的代码

//来绘制该图标。

对于使用文档/视图模型的MFC应用程序,

//这将由框架自动完成。

voidCFirsttryDlg:

:

OnPaint()

{

if(IsIconic())

{

CPaintDCdc(this);//用于绘制的设备上下文

SendMessage(WM_ICONERASEBKGND,reinterpret_cast(dc.GetSafeHdc()),0);

//使图标在工作区矩形中居中

intcxIcon=GetSystemMetrics(SM_CXICON);

intcyIcon=GetSystemMetrics(SM_CYICON);

CRectrect;

GetClientRect(&rect);

intx=(rect.Width()-cxIcon+1)/2;

inty=(rect.Height()-cyIcon+1)/2;

//绘制图标

dc.DrawIcon(x,y,m_hIcon);

}

else

{

CDialogEx:

:

OnPaint();

}

}

//当用户拖动最小化窗口时系统调用此函数取得光标

//显示。

HCURSORCFirsttryDlg:

:

OnQueryDragIcon()

{

returnstatic_cast(m_hIcon);

}

voidCFirsttryDlg:

:

OnCalcDeci()

{

//TODO:

在此添加命令处理程序代码

CMenu*pMenu=GetMenu();

pMenu->CheckMenuRadioItem(ID_CALC_DECI,ID_CALC_HEX,ID_CALC_DECI,MF_CHECKED);

m_iCalcMode=0;

m_strNum1.Empty();

m_strNum2.Empty();

m_strOperation.Empty();

GetDlgItem(IDC_NUMBERA)->EnableWindow(FALSE);

GetDlgItem(IDC_NUMBERB)->EnableWindow(FALSE);

GetDlgItem(IDC_NUMBERC)->EnableWindow(FALSE);

GetDlgItem(IDC_NUMBERD)->EnableWindow(FALSE);

GetDlgItem(IDC_NUMBERE)->EnableWindow(FALSE);

GetDlgItem(IDC_NUMBERF)->EnableWindow(FALSE);

}

voidCFirsttryDlg:

:

OnCalcHex()

{

//TODO:

在此添加命令处理程序代码

CMenu*pMenu=GetMenu();

pMenu->CheckMenuRadioItem(ID_CALC_DECI,ID_CALC_HEX,ID_CALC_HEX,MF_CHECKED);

m_iCalcMode=1;

m_strNum1.Empty();

m_strNum2.Empty();

m_strOperation.Empty();

GetDlgItem(IDC_NUMBERA)->EnableWindow(TRUE);

GetDlgItem(IDC_NUMBERB)->EnableWindow(TRUE);

GetDlgItem(IDC_NUMBERC)->EnableWindow(TRUE);

GetDlgItem(IDC_NUMBERD)->EnableWindow(TRUE);

GetDlgItem(IDC_NUMBERE)->EnableWindow(TRUE);

GetDlgItem(IDC_NUMBERF)->EnableWindow(TRUE);

}

voidCFirsttryDlg:

:

OnBnClickedNumber1()

{

//TODO:

在此添加控件通知处理程序代码

m_strNum1+="1";

GetDlgItem(IDC_RESULT)->SetWindowText(m_strNum1);

}

voidCFirsttryDlg:

:

OnBnClickedNumber2()

{

//TODO:

在此添加控件通知处理程序代码

m_strNum1+="2";

GetDlgItem(IDC_RESULT)->SetWindowText(m_strNum1);

}

voidCFirsttryDlg:

:

OnBnClickedNumber3()

{

//TODO:

在此添加控件通知处理程序代码

m_strNum1+="3";

GetDlgItem(IDC_RESULT)->SetWindowText(m_strNum1);

}

voidCFirsttryDlg:

:

OnBnClickedNumber4()

{

//TODO:

在此添加控件通知处理程序代码

m_strNum1+="4";

GetDlgItem(IDC_RESULT)->SetWindowText(m_strNum1);

}

voidCFirsttryDlg:

:

OnBnClickedNumber5()

{

//TODO:

在此添加控件通知处理程序代码

m_strNum1+="5";

GetDlgItem(IDC_RESULT)->SetWindowText(m_strNum1);

}

voidCFirsttryDlg:

:

OnBnClickedNumber6()

{

//TODO:

在此添加控件通知处理程序代码

m_strNum1+="6";

GetDlgItem(IDC_RESULT)->SetWindowText(m_strNum1);

}

voidCFirsttryDlg:

:

OnBnClickedNumber7()

{

//TODO:

在此添加控件通知处理程序代码

m_strNum1+="7";

GetDlgItem(IDC_RESULT)->SetWindowText(m_strNum1);

}

voidCFirsttryDlg:

:

OnBnClickedNumber8()

{

//TODO:

在此添加控件通知处理程序代码

m_strNum1+="8";

GetDlgItem(IDC_RESULT)->SetWindowText(m_strNum1);

}

voidCFirsttryDlg:

:

OnBnClickedNumber9()

{

//TODO:

在此添加控件通知处理程序代码

m_strNum1+="9";

GetDlgItem(IDC_RESULT)->SetWindowText(m_strNum1);

}

voidCFirsttryDlg:

:

OnBnClickedNumber0()

{

//TODO:

在此添加控件通知处理程序代码

m_strNum1+="0";

GetDlgItem(IDC_RESULT)->SetWindowText(m_strNum1);

}

voidCFirsttryDlg:

:

OnBnClickedNumbera()

{

//TODO:

在此添加控件通知处理程序代码

m_strNum1+="A";

GetDlgItem(IDC_RESULT)->SetWindowText(m_strNum1);

}

voidCFirsttryDlg:

:

OnBnClickedNumberb()

{

//TODO:

在此添加控件通知处理程序代码

m_strNum1+="B";

GetDlgItem(IDC_RESULT)->SetWindowText(m_strNum1);

}

voidCFirsttryDlg:

:

OnBnClickedNumberc()

{

//TODO:

在此添加控件通知处理程序代码

m_strNum1+="C";

GetDlgItem(IDC_RESULT)->SetWindowText(m_strNum1);

}

voidCFirsttryDlg:

:

OnBnClickedNumberd()

{

//TODO:

在此添加控件通知处理程序代码

m_strNum1+="D";

GetDlgItem(IDC_RESULT)->SetWindowText(m_strNum1);

}

voidCFirsttryDlg:

:

OnBnClickedNumbere()

{

//TODO:

在此添加控件通知处理程序代码

m_strNum1+="E";

GetDlgItem(IDC_RESULT)->SetWindowText(m_strNum1);

}

voidCFirsttryDlg:

:

OnBnClickedNumberf()

{

//TODO:

在此添加控件通知处理程序代码

m_strNum1+="F";

GetDlgItem(IDC_RESULT)->SetWindowText(m_strNum1);

}

voidCFirsttryDlg:

:

OnBnClickedAdd()

{

//TODO:

在此添加控件通知处理程序代码

if(m_iCalcMode==0)

{

if(m_strOperation.IsEmpty())

{

m_strOperation="+";

m_strNum2=m_strNum1;

}

else

{

longres;

if(m_strOperation=="+")

res=a

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1