// 计数器.cpp : Defines the entry point for the application.
//
#include "stdafx.h"
#include "resource.h"
HWND hWndhWnd,
hEditResult,
hButtonOptSum0,hButtonOptSum1,hButtonOptSum2,hButtonOptSum3,
hButtonOptSum4,hButtonOptSum5,hButtonOptSum6,hButtonOptSum7,
hButtonOptSum8,hButtonOptSum9,hButtonOptSumDec,
hButtonOptAdd,hButtonOptSub,hButtonOptMul,hButtonOptDiv,
hButtonOptSqrt,
hButtonOptPercent,hButtonOptEqu,
hButtonCancelEntry,
hDlgModeless;
HINSTANCE hInst;
char lpszAddItem[20]="";
char lpszResult[20]="";
CHOOSEFONT choosefont;
HFONT currentfont;
LOGFONT logfont;
HHOOK hHook;
DWORD oldProc;
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
BOOL CALLBACK DlgProc(HWND,UINT,WPARAM,LPARAM);
LRESULT CALLBACK HookProc(int nCode,WPARAM wParam,LPARAM lParam);
LRESULT CALLBACK SubProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam);
#include "Calculator.h"
//-------------------------主函数------------------------
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{
// TODO: Place code here.
InitSkinMagicLib(hInstance,"LINJIN",NULL,NULL);
LoadSkinFromResource(NULL,"DEVIOR","SKINMAGIC");
SetDialogSkin("Dialog") ;
HWND hWnd;
MSG Message;
WNDCLASS WndClass;
char lpszClassName[]="窗口";
char lpszTitle[]="计算器";
WndClass.style=0;
WndClass.cbClsExtra=0;
WndClass.cbWndExtra=0;
WndClass.hbrBackground=(HBRUSH)(GetStockObject(LTGRAY_BRUSH)); //设置窗体背景:亮灰色
WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);
WndClass.hIcon=LoadIcon(NULL,"ICON");
WndClass.hInstance=hInstance;
WndClass.lpfnWndProc=WndProc; //消息处理
WndClass.lpszClassName=lpszClassName;
WndClass.lpszMenuName="MENU"; //加载菜单
if(!RegisterClass(&WndClass))
{
MessageBeep(0);
return FALSE;
}
hInst=hInstance;
hWnd=CreateWindow(
lpszClassName,
lpszTitle,
WS_OVERLAPPED | WS_MINIMIZEBOX | WS_SYSMENU,
CW_USEDEFAULT,
CW_USEDEFAULT,
210,230,
NULL,
NULL,
hInstance,
NULL
);
HMENU hMenu=GetMenu(hWnd); //要在SetWindowSkin之前用,否则hMenu为NULL
SetWindowSkin(hWnd,"MainFrame");
ShowWindow(hWnd,nCmdShow);
UpdateWindow(hWnd);
while(GetMessage(&Message,NULL,0,0))
{
if (hDlgModeless==0||!IsDialogMessage(hDlgModeless,&Message))
{
TranslateMessage(&Message);
DispatchMessage(&Message);
}
}
//在 WinMain 结束时释放 SkinMagic 资源。
ExitSkinMagicLib();
return Message.wParam;
}
//------------------------消息处理--------------------------------
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_CREATE:
hEditResult=CreateWindow("EDIT",//建立文本框
NULL,
WS_CHILD | WS_VISIBLE | ES_RIGHT | WS_BORDER | ES_NUMBER,
10,10,
185,20,
hwnd,
(HMENU)IDE_RESULT,
hInst,
NULL);
hButtonOptSum7=CreateWindow("BUTTON",//建立按钮7
"7",
WS_CHILD | WS_VISIBLE,
10,40,
30,30,
hwnd,
(HMENU) IDB_NUM7,
hInst,
NULL);
hButtonOptSum8=CreateWindow("BUTTON",//建立按钮8
"8",
WS_CHILD | WS_VISIBLE,
45,40,
30,30,
hwnd,
(HMENU) IDB_NUM8,
hInst,
NULL);
hButtonOptSum9=CreateWindow("BUTTON",//建立按钮9
"9",
WS_CHILD | WS_VISIBLE,
80,40,
30,30,
hwnd,
(HMENU) IDB_NUM9,
hInst,
NULL);
hButtonOptSum4=CreateWindow("BUTTON",//建立按钮4
"4",
WS_CHILD | WS_VISIBLE,
10,75,
30,30,
hwnd,
(HMENU) IDB_NUM4,
hInst,
NULL);
hButtonOptSum5=CreateWindow("BUTTON",//建立按钮5
"5",
WS_CHILD | WS_VISIBLE,
45,75,
30,30,
hwnd,
(HMENU) IDB_NUM5,
hInst,
NULL);
hButtonOptSum6=CreateWindow("BUTTON",//建立按钮6
"6",
WS_CHILD | WS_VISIBLE,
80,75,
30,30,
hwnd,
(HMENU) IDB_NUM6,
hInst,
NULL);
hButtonOptSum1=CreateWindow("BUTTON",//建立按钮1
"1",
WS_CHILD | WS_VISIBLE,
10,110,
30,30,
hwnd,
(HMENU) IDB_NUM1,
hInst,
NULL);
hButtonOptSum2=CreateWindow("BUTTON",//建立按钮2
"2",
WS_CHILD | WS_VISIBLE,
45,110,
30,30,
hwnd,
(HMENU) IDB_NUM2,
hInst,
NULL);
hButtonOptSum3=CreateWindow("BUTTON",//建立按钮3
"3",
WS_CHILD | WS_VISIBLE,
80,110,
30,30,
hwnd,
(HMENU) IDB_NUM3,
hInst,
NULL);
hButtonOptSum0=CreateWindow("BUTTON",//建立按钮0
"0",
WS_CHILD | WS_VISIBLE,
10,145,
65,30,
hwnd,
(HMENU) IDB_NUM0,
hInst,
NULL);
hButtonOptSumDec=CreateWindow("BUTTON",//建立按钮.
".",
WS_CHILD | WS_VISIBLE,
80,145,
30,30,
hwnd,
(HMENU) IDB_NUMDEC,
hInst,
NULL);
hButtonOptSqrt=CreateWindow("BUTTON",//建立按钮Sqr
"Sqr",
WS_CHILD | WS_VISIBLE,
130,40,
30,30,
hwnd,
(HMENU) IDB_OPTSQRT,
hInst,
NULL);
hButtonCancelEntry=CreateWindow("BUTTON",//建立按钮CE
"C",
WS_CHILD | WS_VISIBLE,
165,40,
30,30,
hwnd,
(HMENU) IDB_CANCLEENTRY,
hInst,
NULL);
hButtonOptAdd=CreateWindow("BUTTON",//建立按钮+
"+",
WS_CHILD | WS_VISIBLE,
130,75,
30,30,
hwnd,
(HMENU)IDB_OPTADD,
hInst,
NULL);
hButtonOptSub=CreateWindow("BUTTON",//建立按钮-
"-",
WS_CHILD | WS_VISIBLE,
165,75,
30,30,
hwnd,
(HMENU)IDB_OPTSUB,
hInst,
NULL);
hButtonOptMul=CreateWindow("BUTTON",//建立按钮*
"*",
WS_CHILD | WS_VISIBLE,
130,110,
30,30,
hwnd,
(HMENU)IDB_OPTMUL,
hInst,
NULL);
hButtonOptDiv=CreateWindow("BUTTON",//建立按钮/
"/",
WS_CHILD | WS_VISIBLE,
165,110,
30,30,
hwnd,
(HMENU)IDB_OPTDIV,
hInst,
NULL);
hButtonOptEqu=CreateWindow("BUTTON",//建立按钮=
"=",
WS_CHILD | WS_VISIBLE,
130,145,
30,30,
hwnd,
(HMENU)IDB_OPTEQU,
hInst,
NULL);
hButtonOptPercent=CreateWindow("BUTTON",//建立按钮%
"%",
WS_CHILD | WS_VISIBLE,
165,145,
30,30,
hwnd,
(HMENU)IDB_OPTPERCENT,
hInst,
NULL);
SetWindowText(hEditResult,"0");
choosefont.lStructSize = sizeof(CHOOSEFONT);
choosefont.hwndOwner = hwnd;
choosefont.lpLogFont = &logfont;
choosefont.Flags = CF_FORCEFONTEXIST|CF_SCREENFONTS|CF_INITTOLOGFONTSTRUCT;
hHook=::SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)HookProc,NULL,::GetCurrentThreadId());
break;
case WM_COMMAND:
switch(LOWORD(wParam))
{
//零至玖与点按钮
case IDB_NUM0:
ShowNumber("0");
break;
case IDB_NUM1:
ShowNumber("1");
break;
case IDB_NUM2:
ShowNumber("2");
break;
case IDB_NUM3:
ShowNumber("3");
break;
case IDB_NUM4:
ShowNumber("4");
break;
case IDB_NUM5:
ShowNumber("5");
break;
case IDB_NUM6:
ShowNumber("6");
break;
case IDB_NUM7:
ShowNumber("7");
break;
case IDB_NUM8:
ShowNumber("8");
break;
case IDB_NUM9:
ShowNumber("9");
break;
case IDB_NUMDEC:
ShowNumber(".");
break;
case IDB_OPTADD:
CalcProc('+',atof(lpszResult));
break;
case IDB_OPTSUB:
CalcProc('-',atof(lpszResult));
break;
case IDB_OPTMUL:
CalcProc('*',atof(lpszResult));
break;
case IDB_OPTDIV:
CalcProc('/',atof(lpszResult));
break;
case IDB_OPTPERCENT:
CalcProc('%',atof(lpszResult));
break;
case IDB_OPTEQU://等于按钮
CalcProc('=',atof(lpszResult));
break;
case IDB_OPTSQRT://开平方按钮
CalcProc('s',atof(lpszResult));
break;
case IDB_CANCLEENTRY:
strcpy(lpszResult,"0");
SetWindowText(hEditResult,lpszResult);
i=0;
bDot=false;
bOptF=true;
break;
case IDM_FONT:
if(ChooseFont(&choosefont))
{
currentfont=CreateFontIndirect(&logfont);
SendMessage(hEditResult,WM_SETFONT,(WPARAM)currentfont,MAKELPARAM(TRUE,0));
}
break;
//关于菜单
case IDM_ABOUT:
if(!hDlgModeles
ctn.rar_编辑框
版权申诉
110 浏览量
2022-09-24
10:28:39
上传
评论
收藏 55KB RAR 举报
Kinonoyomeo
- 粉丝: 75
- 资源: 1万+
最新资源
- STM8L101F3P6单片机+CC1100模块433M遥控器设计硬件(原理图+PCB)工程文件.zip
- 上传下载铁人下载系统 Liuxing 1.0-liuxing1.0.rar
- 南京邮电大学数学实验实力雄厚,凭借其优秀的师资力量、丰富的实践教学资源和卓越的科研成果,成为国内一流的数学实验教学和科研基地
- 【火爆朋友圈的今天吃什么源码 v1.0】随机的为用户带来每一天的用餐选择和推荐.rar
- MPU6050中文版数据手册
- 上传下载手机电影下载-mobiledy.rar
- 响应式旅游网站源码下载 马尔代夫旅游网站.rar
- CMS小涴熊漫画连载系统漫画网站源码 带采集API.rar
- 福袋点点.apk
- 基于STM32的电子秤采用0.96寸OLED显示UI界面源码.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈