可视化编程MFC计算器.docx
- 文档编号:13015193
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:36
- 大小:18.56KB
可视化编程MFC计算器.docx
《可视化编程MFC计算器.docx》由会员分享,可在线阅读,更多相关《可视化编程MFC计算器.docx(36页珍藏版)》请在冰点文库上搜索。
可视化编程MFC计算器
//cacuDlg.cpp:
implementationfile
//
#include"stdafx.h"
#include"cacu.h"
#include"cacuDlg.h"
#include"math.h"
#include"cstring"
#ifdef_DEBUG
#definenewDEBUG_NEW
#undefTHIS_FILE
staticcharTHIS_FILE[]=__FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
//CAboutDlgdialogusedforAppAbout
classCAboutDlg:
publicCDialog
{
public:
CAboutDlg();
//DialogData
//{{AFX_DATA(CAboutDlg)
enum{IDD=IDD_ABOUTBOX};
//}}AFX_DATA
//ClassWizardgeneratedvirtualfunctionoverrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtualvoidDoDataExchange(CDataExchange*pDX);//DDX/DDVsupport
//}}AFX_VIRTUAL
//Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg:
:
CAboutDlg():
CDialog(CAboutDlg:
:
IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
voidCAboutDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg,CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
//Nomessagehandlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CCacuDlgdialog
CCacuDlg:
:
CCacuDlg(CWnd*pParent/*=NULL*/)
:
CDialog(CCacuDlg:
:
IDD,pParent)
{
//{{AFX_DATA_INIT(CCacuDlg)
m_s=_T("");
m_M=_T("");
p=0,q=0,w=1,c='r';
Ispoint=false;
//}}AFX_DATA_INIT
//NotethatLoadIcondoesnotrequireasubsequentDestroyIconinWin32
m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
voidCCacuDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialog:
:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CCacuDlg)
DDX_Text(pDX,IDC_EDIT1,m_s);
DDX_Text(pDX,IDC_EDIT2,m_M);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CCacuDlg,CDialog)
//{{AFX_MSG_MAP(CCacuDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_EN_CHANGE(IDC_EDIT1,OnChangeEdit1)
ON_BN_CLICKED(IDC_BackSpace,OnBackSpace)
ON_BN_CLICKED(IDC_Clear2,OnClear)
ON_BN_CLICKED(IDC_1,On1)
ON_BN_CLICKED(IDC_2,On2)
ON_BN_CLICKED(IDC_3,On3)
ON_BN_CLICKED(IDC_4,On4)
ON_BN_CLICKED(IDC_5,On5)
ON_BN_CLICKED(IDC_6,On6)
ON_BN_CLICKED(IDC_7,On7)
ON_BN_CLICKED(IDC_8,On8)
ON_BN_CLICKED(IDC_9,On9)
ON_BN_CLICKED(IDC_add,Onadd)
ON_BN_CLICKED(IDC_Sub,OnSub)
ON_BN_CLICKED(IDC_Mul,OnMul)
ON_BN_CLICKED(IDC_div,Ondiv)
ON_BN_CLICKED(IDC_Sqrt,OnSqrt)
ON_BN_CLICKED(IDC_point,Onpoint)
ON_BN_CLICKED(IDC_0,On0)
ON_BN_CLICKED(IDC_Sin,OnSin)
ON_BN_CLICKED(IDC_Cos,OnCos)
ON_BN_CLICKED(IDC_power_2,Onpower2)
ON_BN_CLICKED(IDC_power_3,Onpower3)
ON_BN_CLICKED(IDC_Equar,OnEquar)
ON_BN_CLICKED(IDC_1_x,On1x)
ON_BN_CLICKED(IDC_1_100,On1100)
ON_BN_CLICKED(IDC_MS,OnMs)
ON_BN_CLICKED(IDC_MC,OnMc)
ON_BN_CLICKED(IDC_MR,OnMr)
ON_BN_CLICKED(IDC_Madd,OnMadd)
ON_BN_CLICKED(IDC_Msub,OnMsub)
ON_EN_CHANGE(IDC_EDIT2,OnM)
ON_BN_CLICKED(IDC_sub_add,Onsubadd)
ON_BN_CLICKED(IDC_CE,OnCe)
ON_BN_CLICKED(IDC_PI,OnPi)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CCacuDlgmessagehandlers
BOOLCCacuDlg:
:
OnInitDialog()
{
CDialog:
:
OnInitDialog();
//Add"About..."menuitemtosystemmenu.
//IDM_ABOUTBOXmustbeinthesystemcommandrange.
ASSERT((IDM_ABOUTBOX&0xFFF0)==IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX<0xF000);
CMenu*pSysMenu=GetSystemMenu(FALSE);
if(pSysMenu!
=NULL)
{
CStringstrAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if(!
strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING,IDM_ABOUTBOX,strAboutMenu);
}
}
//Settheiconforthisdialog.Theframeworkdoesthisautomatically
//whentheapplication'smainwindowisnotadialog
SetIcon(m_hIcon,TRUE);//Setbigicon
SetIcon(m_hIcon,FALSE);//Setsmallicon
//TODO:
Addextrainitializationhere
m_s="0.";
UpdateData(false);
m_s="";
CFont*m_Font;
m_Font=newCFont;
m_Font->CreateFont(50,20,0,0,100,
FALSE,FALSE,0,ANSI_CHARSET,OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS,DEFAULT_QUALITY,FF_SWISS,"Arial");
CEdit*m_Edit1=(CEdit*)GetDlgItem(IDC_EDIT1);
m_Edit1->SetFont(m_Font,FALSE);
GetDlgItem(IDC_EDIT1)->SetFont(m_Font);
returnTRUE;//returnTRUEunlessyousetthefocustoacontrol
}
voidCCacuDlg:
:
OnSysCommand(UINTnID,LPARAMlParam)
{
if((nID&0xFFF0)==IDM_ABOUTBOX)
{
CAboutDlgdlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog:
:
OnSysCommand(nID,lParam);
}
}
//Ifyouaddaminimizebuttontoyourdialog,youwillneedthecodebelow
//todrawtheicon.ForMFCapplicationsusingthedocument/viewmodel,
//thisisautomaticallydoneforyoubytheframework.
voidCCacuDlg:
:
OnPaint()
{
if(IsIconic())
{
CPaintDCdc(this);//devicecontextforpainting
SendMessage(WM_ICONERASEBKGND,(WPARAM)dc.GetSafeHdc(),0);
//Centericoninclientrectangle
intcxIcon=GetSystemMetrics(SM_CXICON);
intcyIcon=GetSystemMetrics(SM_CYICON);
CRectrect;
GetClientRect(&rect);
intx=(rect.Width()-cxIcon+1)/2;
inty=(rect.Height()-cyIcon+1)/2;
//Drawtheicon
dc.DrawIcon(x,y,m_hIcon);
}
else
{
CDialog:
:
OnPaint();
}
}
//Thesystemcallsthistoobtainthecursortodisplaywhiletheuserdrags
//theminimizedwindow.
HCURSORCCacuDlg:
:
OnQueryDragIcon()
{
return(HCURSOR)m_hIcon;
}
voidCCacuDlg:
:
OnChangeEdit1()
{
//TODO:
IfthisisaRICHEDITcontrol,thecontrolwillnot
//sendthisnotificationunlessyouoverridetheCDialog:
:
OnInitDialog()
//functionandcallCRichEditCtrl().SetEventMask()
//withtheENM_CHANGEflagORedintothemask.
//TODO:
Addyourcontrolnotificationhandlercodehere
}
voidCCacuDlg:
:
OnBackSpace()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
intuu=0;
m_s.Delete(m_s.GetLength()-1,1);
if(w==1)
temp1=atof(m_s);
else
temp2=atof(m_s);
if(m_s.Find('.')<0)
Ispoint=false;
else
Ispoint=true;
if(m_s.GetLength()==0)
{
m_s="0.";
uu=1;
c='r';
}
if(!
uu&&!
Ispoint)
m_s+=".";
UpdateData(false);
if(!
uu&&!
Ispoint)
m_s.Delete(m_s.GetLength()-1,1);
if(uu==1)
m_s="";
}
voidCCacuDlg:
:
OnClear()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
UpdateData(true);
m_s="0.";
temp2=temp1=0;
w=1;
c='r';
UpdateData(false);
m_s="";
}
voidCCacuDlg:
:
On1()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(p==1)
{
m_s="";
UpdateData(false);
p=0;
}
m_s=m_s+"1";
if(!
Ispoint)
m_s+=".";
UpdateData(false);
if(!
Ispoint)
m_s.Delete(m_s.GetLength()-1,1);
if(w==1)
temp1=atof(m_s),temp2=0;
elseif(w==2)
temp2=atof(m_s);
//c='1';
}
voidCCacuDlg:
:
On2()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(p==1)
{
m_s="";
UpdateData(false);
p=0;
}
//UpdateData(true);
m_s=m_s+"2";
if(!
Ispoint)
m_s+=".";
UpdateData(false);
//c='1';
if(!
Ispoint)
m_s.Delete(m_s.GetLength()-1,1);
if(w==1)
temp1=atof(m_s),temp2=0;
elseif(w==2)
temp2=atof(m_s);
}
voidCCacuDlg:
:
On3()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(p==1)
{
m_s="";
UpdateData(false);
p=0;
}
//UpdateData(true);
m_s=m_s+"3";
if(!
Ispoint)
m_s+=".";
UpdateData(false);
if(!
Ispoint)
m_s.Delete(m_s.GetLength()-1,1);
if(w==1)
temp1=atof(m_s),temp2=0;
elseif(w==2)
temp2=atof(m_s);
//c='1';
}
voidCCacuDlg:
:
On4()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(p==1)
{
m_s="";
UpdateData(false);
p=0;
}
//UpdateData(true);
m_s=m_s+"4";
if(!
Ispoint)
m_s+=".";
UpdateData(false);
if(!
Ispoint)
m_s.Delete(m_s.GetLength()-1,1);
//c='1';
if(w==1)
temp1=atof(m_s),temp2=0;
elseif(w==2)
temp2=atof(m_s);
}
voidCCacuDlg:
:
On5()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(p==1)
{
m_s="";
UpdateData(false);
p=0;
}
//UpdateData(true);
m_s=m_s+"5";
if(!
Ispoint)
m_s+=".";
UpdateData(false);
if(!
Ispoint)
m_s.Delete(m_s.GetLength()-1,1);
//c='1';
if(w==1)
temp1=atof(m_s);
elseif(w==2)
temp2=atof(m_s);
}
voidCCacuDlg:
:
On6()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(p==1)
{
m_s="";
UpdateData(false);
p=0;
}
//UpdateData(true);
m_s=m_s+"6";
if(!
Ispoint)
m_s+=".";
UpdateData(false);
if(!
Ispoint)
m_s.Delete(m_s.GetLength()-1,1);
//c='1';
if(w==1)
temp1=atof(m_s),temp2=0;
elseif(w==2)
temp2=atof(m_s);
}
voidCCacuDlg:
:
On7()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(p==1)
{
m_s="";
UpdateData(false);
p=0;
}
m_s=m_s+"7";
if(!
Ispoint)
m_s+=".";
UpdateData(false);
if(!
Ispoint)
m_s.Delete(m_s.GetLength()-1,1);
//c='1';
if(w==1)
temp1=atof(m_s),temp2=0;
elseif(w==2)
temp2=atof(m_s);
}
voidCCacuDlg:
:
On8()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(p==1)
{
m_s="";
UpdateData(false);
p=0;
}
//UpdateData(true);
m_s=m_s+"8";
if(!
Ispoint)
m_s+=".";
UpdateData(false);
if(!
Ispoint)
m_s.Delete(m_s.GetLength()-1,1);
//c='1';
if(w==1)
temp1=atof(m_s),temp2=0;
elseif(w==2)
temp2=atof(m_s);
}
voidCCacuDlg:
:
On9()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(p==1)
{
m_s="";
UpdateData(false);
p=0;
}
m_s=m_s+"9";
if(!
Ispoint)
m_s+=".";
UpdateData(false);
if(!
Ispoint)
m_s.Delete(m_s.GetLength()-1,1);
if(w==1)
temp1=atof(m_s),temp2=0;
elseif(w==2)
temp2=atof(m_s);
}
voidCCacuDlg:
:
On0()
{
//TODO:
Addyourcontrolnotificationhandlercodehere
if(p==1)
{
m_s="";
UpdateData(false);
p=0;
}
//UpdateData(true);
m_s=m_s+"0";
if(!
Ispoint)
m_s+=".";
UpdateData(fa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可视化 编程 MFC 计算器
![提示](https://static.bingdoc.com/images/bang_tan.gif)