📄 calculator.c
字号:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <math.h>
#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include <minigui/control.h>
#include <minigui/mywindows.h>
#include <minigui/mgext.h>
#define IDC_RESULT 100
#define IDC_BUTTON 110
#define IDM_EDIT 200
#define IDM_VIEW 300
#define IDM_HELP 400
#define IDM_COPY 210
#define IDM_PASTE 211
#define IDM_CUT 212
#define IDM_DEL 213
#define IDM_STANDARD 310
#define IDM_SCIENCE 311
#define IDM_ABOUT 410
static HMENU Createpmenuedit (void)
{
HMENU hmnu;
MENUITEMINFO mii;
memset (&mii, 0, sizeof(MENUITEMINFO));
mii.type = MFT_STRING;
mii.id = 0;
mii.typedata = (DWORD)"编辑";
hmnu = CreatePopupMenu (&mii);
mii.type = MFT_STRING;
mii.state = 0;
mii.id = IDM_PASTE;
mii.typedata = (DWORD)"复制";
InsertMenuItem(hmnu, 0, TRUE, &mii);
mii.type = MFT_STRING;
mii.state = 0;
mii.id = IDM_PASTE;
mii.typedata = (DWORD)"粘贴";
InsertMenuItem(hmnu, 1, TRUE, &mii);
mii.type = MFT_SEPARATOR;
mii.state = 0;
mii.id = 0;
mii.typedata = 0;
InsertMenuItem(hmnu, 2, TRUE, &mii);
mii.type = MFT_STRING ;
mii.state = 0;
mii.id = IDM_CUT;
mii.typedata = (DWORD)"剪切";
InsertMenuItem(hmnu, 3, TRUE, &mii);
mii.type = MFT_STRING ;
mii.state = 0;
mii.id = IDM_DEL;
mii.typedata = (DWORD)"删除";
InsertMenuItem(hmnu, 4, TRUE, &mii);
return hmnu;
}
static HMENU Createpmenuview(void)
{
HMENU hmnu;
MENUITEMINFO mii;
memset (&mii, 0, sizeof(MENUITEMINFO));
mii.type = MFT_STRING;
mii.id = 0;
mii.typedata = (DWORD)"查看";
hmnu = CreatePopupMenu (&mii);
memset (&mii, 0, sizeof(MENUITEMINFO));
mii.type = MFT_STRING ;
mii.state = 0;
mii.id = IDM_SCIENCE;
mii.typedata = (DWORD)"标准型";
InsertMenuItem(hmnu, 0, TRUE, &mii);
mii.type = MFT_STRING ;
mii.state = 0;
mii.id = IDM_SCIENCE;
mii.typedata = (DWORD)"科学型";
InsertMenuItem(hmnu, 1, TRUE, &mii);
return hmnu;
}
static HMENU Createpmenuabout(void)
{
HMENU hmnu;
MENUITEMINFO mii;
memset (&mii, 0, sizeof(MENUITEMINFO));
mii.type = MFT_STRING;
mii.id = 0;
mii.typedata = (DWORD)"帮助主题";
hmnu = CreatePopupMenu (&mii);
mii.type = MFT_STRING ;
mii.state = 0;
mii.id = IDM_ABOUT;
mii.typedata = (DWORD)"关于计算器";
InsertMenuItem(hmnu, 0, TRUE, &mii);
return hmnu;
}
static HMENU CreateCalcMenu(void)
{
HMENU hmnu;
MENUITEMINFO mii;
hmnu = CreateMenu();
memset (&mii, 0, sizeof(MENUITEMINFO));
mii.type = MFT_STRING;
mii.id = IDM_EDIT;
mii.typedata = (DWORD)"编辑";
mii.hsubmenu = Createpmenuedit();
InsertMenuItem(hmnu, 0, TRUE, &mii);
mii.type = MFT_STRING;
mii.id = IDM_VIEW;
mii.typedata = (DWORD)"查看";
mii.hsubmenu = Createpmenuview ();
InsertMenuItem(hmnu, 1, TRUE, &mii);
mii.type = MFT_STRING;
mii.id = IDM_HELP;
mii.typedata = (DWORD)"帮助";
mii.hsubmenu = Createpmenuabout ();
InsertMenuItem(hmnu, 2, TRUE, &mii);
return hmnu;
}
static CTRLDATA Ctrlcalc[] =
{
{
CTRL_SLEDIT,
WS_VISIBLE | ES_RIGHT | WS_BORDER,
30, 5, 260, 25,
IDC_RESULT,
"0",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_NOTIFY | BS_PUSHBUTTON,
75, 35, 65, 25,
IDC_BUTTON+0,
"Backspace",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
150, 35, 65, 25,
IDC_BUTTON+1,
"CE",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
225, 35, 65, 25,
IDC_BUTTON+2,
"C",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
75, 65, 35, 25,
IDC_BUTTON+3,
"7",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
75, 95, 35, 25,
IDC_BUTTON+4,
"4",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
75, 125, 35, 25,
IDC_BUTTON+5,
"1",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
75, 155, 35, 25,
IDC_BUTTON+6,
"0",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
120, 65, 35, 25,
IDC_BUTTON+7,
"8",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
120, 95, 35, 25,
IDC_BUTTON+8,
"5",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
120, 125, 35, 25,
IDC_BUTTON+9,
"2",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
120, 155, 35, 25,
IDC_BUTTON+10,
"+/-",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
165, 65, 35, 25,
IDC_BUTTON+11,
"9",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
165, 95, 35, 25,
IDC_BUTTON+12,
"6",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
165, 125, 35, 25,
IDC_BUTTON+13,
"3",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
165, 155, 35, 25,
IDC_BUTTON+14,
".",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
210, 65, 35, 25,
IDC_BUTTON+15,
"/",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
210, 95, 35, 25,
IDC_BUTTON+16,
"*",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
210, 125, 35, 25,
IDC_BUTTON+17,
"-",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
210, 155, 35, 25,
IDC_BUTTON+18,
"+",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
255, 65, 35, 25,
IDC_BUTTON+19,
"sqrt",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
255, 95, 35, 25,
IDC_BUTTON+20,
"%",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
255, 125, 35, 25,
IDC_BUTTON+21,
"1/x",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
255, 155, 35, 25,
IDC_BUTTON+22,
"=",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
30, 35, 35, 25,
IDC_BUTTON+23,
"",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
30, 65, 35, 25,
IDC_BUTTON+24,
"MC",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
30, 95, 35, 25,
IDC_BUTTON+25,
"MR",
0
},
{
CTRL_BUTTON,
WS_CHILD | WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON,
30, 125, 35, 25,
IDC_BUTTON+26,
"MS",
0
},
{
CTRL_BUTTON,
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -