⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 calculator.cpp

📁 基于EVC的一个计算器程序
💻 CPP
📖 第 1 页 / 共 2 页
字号:
// calculator.cpp : Defines the entry point for the application.
#include "stdafx.h"
#include<windows.h>
#include <math.h>
#include <stdio.h>
#include <stdlib.h>
#include<string.h>
#include"resource.h"

HWND hWndhWnd,
     hEditResult,hEditResult2,
     hButtonOptSum0,hButtonOptSum1,hButtonOptSum2,hButtonOptSum3,
	 hButtonOptSum4,hButtonOptSum5,hButtonOptSum6,hButtonOptSum7,
	 hButtonOptSum8,hButtonOptSum9,hButtonOptSumDec,
     hButtonOptAdd,hButtonOptSub,hButtonOptMul,hButtonOptDiv,
	 hButtonOptSqrt,
	 hButtonOptPercent,hButtonOptEqu,
	 hButtonCancelEntry,
	 hButtonMa,hButtonMs,hButtonMr,hButtonas,hButtonmm,
	 hButtonMc,hButtonCe,hButtonBk;
	 
HINSTANCE hInst;
char  temp[25];
TCHAR lpszAddItem[25]=TEXT("");
TCHAR lpszResult[25]=TEXT("");
TCHAR lpszResult1[25]=TEXT("");
TCHAR lpszResult2[25]=TEXT("");
TCHAR lpszOpt[]=TEXT("N");  //贮存操作符号
TCHAR lpszkeychar[25]=TEXT("");
TCHAR *stop;
double nAddItem=0,nResult=0;
double nResult1=0,nResult2=0;
int nMax;
int nOptF=0;  //判断是否按了操作符键
bool bDec=false;    //判断是否按了点操作符;

LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
void EquResult();               //按下操作符(+,-,*,/,sqrt,%,=)处理函数
void NumResult(TCHAR *NumData);  //按下数字键(0~9和小数点)的操作处理函数
void asc_uni(char *lpasc,wchar_t *lpuni);





//-------------------------主函数------------------------
int WINAPI WinMain(	 HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPWSTR     lpCmdLine,
                     int       nCmdShow      )
{
 	// TODO: Place code here.
	HWND hWnd;
    MSG Message;
	WNDCLASS WndClass;
	TCHAR lpszClassName[]=_T("calculator");
	TCHAR lpszTitle[]=_T("  计算器");
	WndClass.cbClsExtra=0;
	WndClass.cbWndExtra=0;
	WndClass.hbrBackground=(HBRUSH)(GetStockObject( LTGRAY_BRUSH)); //设置窗体背景:亮灰色
    WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
	//WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
	WndClass.hIcon=LoadIcon(NULL,_T("WINICON"));
	WndClass.hInstance=hInstance;
	WndClass.lpfnWndProc=WndProc;    //消息处理
	WndClass.lpszClassName=lpszClassName;
    WndClass.lpszMenuName=NULL;    //加载菜单
	WndClass.style=0;
	
    if(!RegisterClass(&WndClass))
	{
		MessageBeep(0);
		return FALSE;
	}

   hInst=hInstance;
   hWnd=CreateWindow(
		               lpszClassName,
		               lpszTitle,
					   WS_OVERLAPPED | WS_SYSMENU | WS_MINIMIZEBOX,
					   CW_USEDEFAULT,
					   CW_USEDEFAULT,
					   //10,20,
					   290,245,
					   NULL,
					   NULL,
					   hInstance,
					   NULL
					  );
    ShowWindow(hWnd,nCmdShow);
   	UpdateWindow(hWnd);
	
	while(GetMessage(&Message,NULL,0,0))
	{
		    TranslateMessage(&Message);
		    DispatchMessage(&Message);
	}
	return Message.wParam;
}


//------------------------消息处理--------------------------------
LRESULT CALLBACK WndProc(HWND hwnd,
						 UINT message,
						 WPARAM wParam,
						 LPARAM lParam)
{
	switch(message)
	{
	case WM_CREATE:
        hEditResult=CreateWindow(TEXT("EDIT"),       //建立文本框
			                    NULL,
								WS_CHILD | WS_VISIBLE| WS_BORDER | ES_READONLY|SS_RIGHT|ES_MULTILINE,
								120,10,
								160,24,
								hwnd,
								(HMENU)IDE_RESULT,
								hInst,
								NULL);
        hEditResult2=CreateWindow(TEXT("EDIT"),       //建立文本框2
			                    NULL,
								WS_CHILD | WS_VISIBLE| WS_BORDER | ES_READONLY|SS_RIGHT,
								10,10,
								76,24,
								hwnd,
								(HMENU)IDE_RESULT,
								hInst,
								NULL);

		hButtonOptSum7=CreateWindow(TEXT("BUTTON"),  //建立按钮7
			                    TEXT("7"),
								WS_CHILD | WS_VISIBLE,
								120,75,
								35,30,
								hwnd,
								(HMENU) IDB_NUM7,
								hInst,
								NULL);
		hButtonOptSum8=CreateWindow(TEXT("BUTTON"),  //建立按钮8
			                    TEXT("8"),
								WS_CHILD | WS_VISIBLE,
								161,75,
								35,30,
								hwnd,
								(HMENU) IDB_NUM8,
								hInst,
								NULL);
		hButtonOptSum9=CreateWindow(TEXT("BUTTON"),   //建立按钮9
			                    TEXT("9"),
								WS_CHILD | WS_VISIBLE,
								202,75,
								35,30,
								hwnd,
								(HMENU) IDB_NUM9,
								hInst,
								NULL);
		hButtonOptSum4=CreateWindow(TEXT("BUTTON"),   //建立按钮4
			                    TEXT("4"),
								WS_CHILD | WS_VISIBLE,
								120,110,
								35,30,
								hwnd,
								(HMENU) IDB_NUM4,
								hInst,
								NULL);
		hButtonOptSum5=CreateWindow(TEXT("BUTTON"),   //建立按钮5
			                    TEXT("5"),
								WS_CHILD | WS_VISIBLE,
								161,110,
								35,30,
								hwnd,
								(HMENU) IDB_NUM5,
								hInst,
								NULL);
		hButtonOptSum6=CreateWindow(TEXT("BUTTON"),   //建立按钮6
			                    TEXT("6"),
								WS_CHILD | WS_VISIBLE,
								202,110,
								35,30,
								hwnd,
								(HMENU) IDB_NUM6,
								hInst,
								NULL);
		hButtonOptSum1=CreateWindow(TEXT("BUTTON"),    //建立按钮1
			                    TEXT("1"),
								WS_CHILD | WS_VISIBLE,
								120,145,
								35,30,
								hwnd,
								(HMENU) IDB_NUM1,
								hInst,
								NULL);
		hButtonOptSum2=CreateWindow(TEXT("BUTTON"),   //建立按钮2
			                    TEXT("2"),
								WS_CHILD | WS_VISIBLE,
								161,145,
								35,30,
								hwnd,
								(HMENU) IDB_NUM2,
								hInst,
								NULL);
		hButtonOptSum3=CreateWindow(TEXT("BUTTON"),   //建立按钮3
			                    TEXT("3"),
								WS_CHILD | WS_VISIBLE,
								202,145,
								35,30,
								hwnd,
								(HMENU) IDB_NUM3,
								hInst,
								NULL);
		hButtonOptSum0=CreateWindow(TEXT("BUTTON"),    //建立按钮0
			                    TEXT("0"),
								WS_CHILD | WS_VISIBLE,
								120,180,
								76,30,
								hwnd,
								(HMENU) IDB_NUM0,
								hInst,
								NULL);
		hButtonOptSumDec=CreateWindow(TEXT("BUTTON"),  //建立按钮.
			                    TEXT("."),
								WS_CHILD | WS_VISIBLE,
								202,180,
								35,30,
								hwnd,
								(HMENU) IDB_NUMDEC,
								hInst,
								NULL);
	    hButtonOptSqrt=CreateWindow(TEXT("BUTTON"),  //建立按钮Sqr
			                    TEXT("Sqr"),
								WS_CHILD | WS_VISIBLE,
								51,40,
								35,30,
								hwnd,
								(HMENU) IDB_OPTSQRT,
								hInst,
								NULL);
		hButtonCancelEntry=CreateWindow(TEXT("BUTTON"),  //建立按钮CE
			                    TEXT("C"),
								WS_CHILD | WS_VISIBLE,
								120,40,
								35,30,
								hwnd,
								(HMENU) IDB_CANCLEENTRY,
								hInst,
								NULL);
		hButtonOptAdd=CreateWindow(TEXT("BUTTON"),    //建立按钮+
			                    TEXT("+"),
								WS_CHILD | WS_VISIBLE,
								244,75,
								35,65,
								hwnd,
								(HMENU)IDB_OPTADD,
								hInst,
								NULL);
		hButtonOptSub=CreateWindow(TEXT("BUTTON"),  //建立按钮-
			                    TEXT("-"),
								WS_CHILD | WS_VISIBLE,
								244,40,
								35,30,
								hwnd,
								(HMENU)IDB_OPTSUB,
								hInst,
								NULL);
		hButtonOptMul=CreateWindow(TEXT("BUTTON"),   //建立按钮*
			                    TEXT("*"),
								WS_CHILD | WS_VISIBLE,
								202,40,
								35,30,
								hwnd,
								(HMENU)IDB_OPTMUL,
								hInst,
								NULL);
		hButtonOptDiv=CreateWindow(TEXT("BUTTON"),   //建立按钮/
			                    TEXT("/"),
								WS_CHILD | WS_VISIBLE,
								161,40,
								35,30,
								hwnd,
								(HMENU)IDB_OPTDIV,
								hInst,
								NULL);
		hButtonOptEqu=CreateWindow(TEXT("BUTTON"),  //建立按钮=
			                    TEXT("="),
								WS_CHILD | WS_VISIBLE,
								244,145,
								35,65,
								hwnd,
								(HMENU)IDB_OPTEQU,
								hInst,
								NULL);
		hButtonOptPercent=CreateWindow(TEXT("BUTTON"),   //建立按钮倒数
			                    TEXT("倒数"),
								WS_CHILD | WS_VISIBLE,
								51,145,
								35,30,
								hwnd,
								(HMENU)IDB_OPTPERCENT,
								hInst,
								NULL);

		hButtonMa=CreateWindow(TEXT("BUTTON"),   //建立按钮M+
			                    TEXT("M+"),
								WS_CHILD | WS_VISIBLE,
								10,40,
								35,30,
								hwnd,
								(HMENU)IDB_MA,
								hInst,
								NULL);
		hButtonMs=CreateWindow(TEXT("BUTTON"),   //建立按钮M-
			                    TEXT("M-"),
								WS_CHILD | WS_VISIBLE,
								10,75,
								35,30,
								hwnd,
								(HMENU)IDB_MS,
								hInst,
								NULL);
		hButtonMr=CreateWindow(TEXT("BUTTON"),   //建立按钮MR
			                    TEXT("MR"),
								WS_CHILD | WS_VISIBLE,
								10,110,
								35,30,
								hwnd,
								(HMENU)IDB_MR,
								hInst,
								NULL);
		hButtonMc=CreateWindow(TEXT("BUTTON"),   //建立按钮MC
			                    TEXT("MC"),
								WS_CHILD | WS_VISIBLE,
								10,145,
								35,30,
								hwnd,
								(HMENU)IDB_MC,
								hInst,
								NULL);
		hButtonCe=CreateWindow(TEXT("BUTTON"),   //建立按钮CE
			                    TEXT("CE"),
								WS_CHILD | WS_VISIBLE,
								10,180,
								35,30,
								hwnd,
								(HMENU)IDB_CE,
								hInst,
								NULL);
		hButtonBk=CreateWindow(TEXT("BUTTON"),   //建立按钮back
			                    TEXT("bk"),
								WS_CHILD | WS_VISIBLE,
								51,180,
								35,30,
								hwnd,
								(HMENU)IDB_BK,
								hInst,
								NULL);
		hButtonas=CreateWindow(TEXT("BUTTON"),   //建立按钮+/-
			                    TEXT("+/-"),
								WS_CHILD | WS_VISIBLE,
								51,110,
								35,30,
								hwnd,
								(HMENU)IDB_AS,
								hInst,
								NULL);
		hButtonmm=CreateWindow(TEXT("BUTTON"),   //建立按钮平方
			                    TEXT("平方"),
								WS_CHILD | WS_VISIBLE,
								51,75,
								35,30,
								hwnd,
								(HMENU)IDB_MM,
								hInst,
								NULL);		
	
		SetWindowText(hEditResult,TEXT("0"));
		break;
//	case WM_SETFOCUS:
//		SetFocus(hwnd);
//		break;
		

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -