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

📄 calculator.c

📁 基于Minigui 2.04开发的计算器
💻 C
📖 第 1 页 / 共 2 页
字号:
#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 + -