📄 calculator.cpp
字号:
// 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 + -