windowsvc编程的简单计算机.docx
- 文档编号:16280542
- 上传时间:2023-07-12
- 格式:DOCX
- 页数:17
- 大小:16.40KB
windowsvc编程的简单计算机.docx
《windowsvc编程的简单计算机.docx》由会员分享,可在线阅读,更多相关《windowsvc编程的简单计算机.docx(17页珍藏版)》请在冰点文库上搜索。
windowsvc编程的简单计算机
//windowsvc编程的简单计算机,能实现两个操作符之间的基本四则运算并实现进制转换
//calculatorDlg.cpp:
//
#include"stdafx.h"
#include"calculator.h"
#include"calculatorDlg.h"
#include"afxdialogex.h"
#ifdef_DEBUG
#definenewDEBUG_NEW
#endif
staticintflag=0;
staticinta=0,b=0,result;
staticCStrings;
classCAboutDlg:
publicCDialogEx
{
public:
CAboutDlg();
enum{IDD=IDD_ABOUTBOX};
protected:
virtualvoidDoDataExchange(CDataExchange*pDX);
protected:
DECLARE_MESSAGE_MAP()
};
CAboutDlg:
:
CAboutDlg():
CDialogEx(CAboutDlg:
:
IDD)
{
}
voidCAboutDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialogEx:
:
DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CAboutDlg,CDialogEx)
END_MESSAGE_MAP()
CcalculatorDlg:
:
CcalculatorDlg(CWnd*pParent/*=NULL*/)
:
CDialogEx(CcalculatorDlg:
:
IDD,pParent)
m_edit0(0)
{
m_hIcon=AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
voidCcalculatorDlg:
:
DoDataExchange(CDataExchange*pDX)
{
CDialogEx:
:
DoDataExchange(pDX);
DDX_Text(pDX,IDC_EDIT1,m_edit0);
DDX_Control(pDX,IDC_EDIT1,m_edit1);
}
BEGIN_MESSAGE_MAP(CcalculatorDlg,CDialogEx)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_BIN,&CcalculatorDlg:
:
OnBnClickedBin)
ON_BN_CLICKED(IDC_OCT,&CcalculatorDlg:
:
OnBnClickedOct)
ON_BN_CLICKED(IDC_DEC,&CcalculatorDlg:
:
OnBnClickedDec)
ON_BN_CLICKED(IDC_HEX,&CcalculatorDlg:
:
OnBnClickedHex)
ON_BN_CLICKED(IDC_BUTTON1,&CcalculatorDlg:
:
OnBnClickedButton1)
ON_BN_CLICKED(IDC_BUTTON2,&CcalculatorDlg:
:
OnBnClickedButton2)
ON_BN_CLICKED(IDC_BUTTON3,&CcalculatorDlg:
:
OnBnClickedButton3)
ON_BN_CLICKED(IDC_BUTTON4,&CcalculatorDlg:
:
OnBnClickedButton4)
ON_BN_CLICKED(IDC_BUTTON5,&CcalculatorDlg:
:
OnBnClickedButton5)
ON_BN_CLICKED(IDC_BUTTON6,&CcalculatorDlg:
:
OnBnClickedButton6)
ON_BN_CLICKED(IDC_BUTTON7,&CcalculatorDlg:
:
OnBnClickedButton7)
ON_BN_CLICKED(IDC_BUTTON8,&CcalculatorDlg:
:
OnBnClickedButton8)
ON_BN_CLICKED(IDC_BUTTON9,&CcalculatorDlg:
:
OnBnClickedButton9)
ON_BN_CLICKED(IDC_BUTTON0,&CcalculatorDlg:
:
OnBnClickedButton0)
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_DIVI,&CcalculatorDlg:
:
OnBnClickedDivi)
ON_BN_CLICKED(IDC_EQU,&CcalculatorDlg:
:
OnBnClickedEqu)
ON_BN_CLICKED(IDC_BUTTONC,&CcalculatorDlg:
:
OnBnClickedButtonc)
ON_BN_CLICKED(IDC_DOT,&CcalculatorDlg:
:
OnBnClickedDot)
END_MESSAGE_MAP()
BOOLCcalculatorDlg:
:
OnInitDialog()
{
CDialogEx:
:
OnInitDialog();
m_edit0=0;
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);
returnTRUE;
}
voidCcalculatorDlg:
:
OnSysCommand(UINTnID,LPARAMlParam)
{
if((nID&0xFFF0)==IDM_ABOUTBOX)
{
CAboutDlgdlgAbout;
dlgAbout.DoModal();
}
else
{
CDialogEx:
:
OnSysCommand(nID,lParam);
}
}
voidCcalculatorDlg:
:
OnPaint()
{
if(IsIconic())
{
CPaintDCdc(this);
SendMessage(WM_ICONERASEBKGND,reinterpret_cast
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();
}
}
HCURSORCcalculatorDlg:
:
OnQueryDragIcon()
{
returnstatic_cast
}
voidCcalculatorDlg:
:
OnBnClickedBin()//二进制
{
UpdateData(TRUE);
longdecimal=m_edit0;
intremainder=0;
intnum=-1,i;
m_edit0=0;
while(decimal>0)
{
remainder=decimal%2;
decimal=decimal/2;
num++;
for(i=1;i<=num;i++)remainder*=10;
m_edit0+=remainder;
}
UpdateData(FALSE);
}
voidCcalculatorDlg:
:
OnBnClickedOct()//八进制
{
UpdateData(TRUE);
longdecimal=m_edit0;
intremainder=0;
intnum=-1,i;
m_edit0=0;
while(decimal>0)
{
remainder=decimal%8;
decimal=decimal/8;
num++;
for(i=1;i<=num;i++)
remainder*=10;
m_edit0+=remainder;
}
UpdateData(FALSE);
}
voidCcalculatorDlg:
:
OnBnClickedDec()//十进制
{
UpdateData(TRUE);
longdecimal=m_edit0;
intremainder=0;
intnum=-1,i;
m_edit0=0;
while(decimal>0)
{
remainder=decimal%10;
decimal=decimal/10;
num++;
for(i=1;i<=num;i++)remainder*=10;
m_edit0+=remainder;
}
UpdateData(FALSE);
}
voidCcalculatorDlg:
:
OnBnClickedHex()//十六进制
{
UpdateData(TRUE);
longdecimal=m_edit0;
intremainder=0;
intnum=-1,i;
m_edit0=0;
while(decimal>0)
{
remainder=decimal%16;
decimal=decimal/16;
num++;
for(i=1;i<=num;i++)remainder*=10;
m_edit0+=remainder;
}
UpdateData(FALSE);
}
voidCcalculatorDlg:
:
OnBnClickedButton1()
{//键入1
if(!
flag)
{
a=a*10+1;
s.Format(L"%d",a);
}
else{
b=b*10+1;
s.Format(L"%d",b);
}
m_edit1.ReplaceSel(L"1");
}
voidCcalculatorDlg:
:
OnBnClickedButton2()
{//键入2
if(!
flag)
{
a=a*10+2;
s.Format(L"%d",a);
}
else{
b=b*10+2;
s.Format(L"%d",b);
}
m_edit1.ReplaceSel(L"2");
}
voidCcalculatorDlg:
:
OnBnClickedButton3()
{//键入3
if(!
flag)
{
a=a*10+3;
s.Format(L"%d",a);
}
else
{
b=b*10+3;
s.Format(L"%d",b);
}
m_edit1.ReplaceSel(L"3");
}
voidCcalculatorDlg:
:
OnBnClickedButton4()
{//键入4
if(!
flag)
{
a=a*10+4;
s.Format(L"%d",a);
}
else{
b=b*10+4;
s.Format(L"%d",b);
}
m_edit1.ReplaceSel(L"4");
}
voidCcalculatorDlg:
:
OnBnClickedButton5()
{//键入5
if(!
flag)
{
a=a*10+5;
s.Format(L"%d",a);
}
else{
b=b*10+5;
s.Format(L"%d",b);
}
m_edit1.ReplaceSel(L"5");
}
voidCcalculatorDlg:
:
OnBnClickedButton6()
{//键入6
if(!
flag)
{
a=a*10+6;
s.Format(L"%d",a);
}
else{
b=b*10+6;
s.Format(L"%d",b);
}
m_edit1.ReplaceSel(L"6");
}
voidCcalculatorDlg:
:
OnBnClickedButton7()
{//键入7
if(!
flag)
{
a=a*10+7;
s.Format(L"%d",a);
}
else{
b=b*10+7;
s.Format(L"%d",b);
}
m_edit1.ReplaceSel(L"7");
}
voidCcalculatorDlg:
:
OnBnClickedButton8()
{//键入8
if(!
flag)
{
a=a*10+8;
s.Format(L"%d",a);
}
else
{
b=b*10+8;
s.Format(L"%d",b);
}
m_edit1.ReplaceSel(L"8");
}
voidCcalculatorDlg:
:
OnBnClickedButton9()
{//键入9
if(!
flag)
{
a=a*10+9;
s.Format(L"%d",a);
}
else{
b=b*10+9;
s.Format(L"%d",b);
}
m_edit1.ReplaceSel(L"9");
}
voidCcalculatorDlg:
:
OnBnClickedButton0()
{//键入0
if(!
flag)
{
a=a*10+0;
s.Format(L"%d",a);
}
else{
b=b*10+0;
s.Format(L"%d",b);
}
m_edit1.ReplaceSel(L"0");
}
voidCcalculatorDlg:
:
OnBnClickedAdd()
{//加法
flag=1;
m_edit1.ReplaceSel(L"+");
}
voidCcalculatorDlg:
:
OnBnClickedSub()
{//减法
flag=2;
m_edit1.ReplaceSel(L"-");
}
voidCcalculatorDlg:
:
OnBnClickedMul()
{//乘法
flag=3;
m_edit1.ReplaceSel(L"*");
}
voidCcalculatorDlg:
:
OnBnClickedDivi()
{//除法
flag=4;
m_edit1.ReplaceSel(L"/");
}
voidCcalculatorDlg:
:
OnBnClickedEqu()
{//运算结果
switch(flag)
{
case1:
result=a+b;
s.Format(L"%d",result);
m_edit1.ReplaceSel(L"=");
m_edit1.ReplaceSel(s);
break;
case2:
result=a-b;
s.Format(L"%d",result);
m_edit1.ReplaceSel(L"=");
m_edit1.ReplaceSel(s);
break;
case3:
result=a*b;
s.Format(L"%d",result);
m_edit1.ReplaceSel(L"=");
m_edit1.ReplaceSel(s);
break;
case4:
if(b==0)
m_edit1.SetWindowTextW(L"ERROR!
");
else
{
result=a/b;
s.Format(L"%d",result);
}
m_edit1.ReplaceSel(L"=");
m_edit1.ReplaceSel(s);
break;
default:
break;
}
a=b=flag=0;
}
voidCcalculatorDlg:
:
OnBnClickedButtonc()//清零
{
m_edit1.SetSel(0,-1);
m_edit1.ReplaceSel(L"");
a=b=flag=0;
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- windows vc编程的简单计算机 vc 编程 简单 计算机