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

📄 jsq1.c

📁 一个详细的计算器代码用minigui编的
💻 C
字号:
#include <stdio.h>
#include <stdlib.h>

#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include <minigui/control.h>
int n=0;int k=0;
static DLGTEMPLATE DlgBoxInputLen =
{
    WS_BORDER | WS_CAPTION, 
    WS_EX_NONE,
    0, 0, 245, 280, 
    "陈祖寿-计算器",
    0, 0,
    24, NULL,
    0
};

#define IDC_SIZE_MM     100
#define BOTTON 120

static CTRLDATA CtrlInputLen [] =
{ 

    {
        CTRL_EDIT,
        WS_VISIBLE | ES_RIGHT | WS_BORDER,
        10, 10, 220, 30,
        IDC_SIZE_MM,
        "0",
        0
    },    {
        CTRL_BUTTON,
        WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, 
        10, 45, 70, 35,
        BOTTON, 
        "Backspace",
        0
    },    {
        CTRL_BUTTON,
        WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, 
        85, 45, 70, 35,
        BOTTON+1, 
        "CE",
        0
    },    {
        CTRL_BUTTON,
        WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, 
        160, 45, 70, 35,
        BOTTON+2, 
        "C",
        0
    },
    {
        CTRL_BUTTON,
        WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, 
        10, 85, 40, 35,
        BOTTON+3, 
        "7",
        0
    },
    {
        CTRL_BUTTON,
        WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, 
        10, 125, 40, 35,
        BOTTON+4, 
        "4",
        0
    },
    {
        CTRL_BUTTON,
        WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, 
        10, 165, 40, 35,
        BOTTON+5, 
        "1",
        0
    },
    {
        CTRL_BUTTON,
        WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, 
        10, 205, 40, 35,
        BOTTON+6, 
        "0",
        0
    },
    {
        CTRL_BUTTON,
        WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, 
        55, 85, 40, 35,
        BOTTON+7, 
        "8",
        0
    },
    {
        CTRL_BUTTON,
        WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, 
        55, 125, 40, 35,
        BOTTON+8, 
        "5",
        0
    },
    {
        CTRL_BUTTON,
        WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, 
        55, 165, 40, 35,
        BOTTON+9, 
        "2",
        0
    },
    {
        CTRL_BUTTON,
        WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, 
        55, 205, 40, 35,
        BOTTON+10, 
        "+/-",
        0
    },
    {
        CTRL_BUTTON,
        WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, 
        100, 85, 40, 35,
        BOTTON+11, 
        "9",
        0
    },
    {
        CTRL_BUTTON,
        WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, 
        100, 125, 40, 35,
        BOTTON+12, 
        "6",
        0
    },
    {
        CTRL_BUTTON,
        WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, 
        100, 165, 40, 35,
        BOTTON+13, 
        "3",
        0
    },
    {
        CTRL_BUTTON,
        WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, 
        100, 205, 40, 35,
        BOTTON+14, 
        ".",
        0
    },
    {
        CTRL_BUTTON,
        WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, 
        145, 85, 40, 35,
        BOTTON+15, 
        "/",
        0
    },
    {
        CTRL_BUTTON,
        WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, 
        145, 125, 40, 35,
        BOTTON+16, 
        "*",
        0
    },
    {
        CTRL_BUTTON,
        WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, 
        145, 165, 40, 35,
        BOTTON+17, 
        "-",
        0
    },
    {
        CTRL_BUTTON,
        WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, 
        145, 205, 40, 35,
        BOTTON+18, 
        "+",
        0
    },    {
        CTRL_BUTTON,
        WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, 
        190, 85, 40, 35,
        BOTTON+19, 
        "sqrt",
        0
    },    {
        CTRL_BUTTON,
        WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, 
        190, 125, 40, 35,
        BOTTON+20, 
        "%",
        0
    },    {
        CTRL_BUTTON,
        WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, 
        190, 165, 40, 35,
        BOTTON+21, 
        "1/x",
        0
    },    {
        CTRL_BUTTON,
        WS_TABSTOP | WS_VISIBLE | BS_PUSHBUTTON, 
        190, 205, 40, 35,
        BOTTON+22, 
        "=",
        0
    }
};
   
static int InputLenDialogBoxProc (HWND hDlg, int message, WPARAM wParam, LPARAM lParam)
{    char text[1024];
    char buffer[1024];    char c[1024];    char d[10];
    long int len,i,j;    double z;
    switch (message) {
    case MSG_INITDIALOG:
        return 1;
        
    case MSG_COMMAND:
        switch (wParam) {        case BOTTON:         GetDlgItemText(hDlg,IDC_SIZE_MM,text, 1024);         len=strlen(text);         if(len<2){        SetDlgItemText(hDlg,IDC_SIZE_MM,"0");         break;      }else         text[len-1]='\0';        SetDlgItemText(hDlg,IDC_SIZE_MM,text);            break; 
        case BOTTON+11:
         
         GetDlgItemText(hDlg,IDC_SIZE_MM,text, 1024);
         len = strlen(text);
         if(text[0]=='0'&&text[1]=='\0')
         text[0]='9';
         else
         text[len] = '9' ;
         text[len+1] = '\0';
         SetDlgItemText(hDlg,IDC_SIZE_MM,text);
         break;
     case BOTTON+12:
         GetDlgItemText(hDlg,IDC_SIZE_MM,text, 1024);
         len = strlen(text);
         if(text[0]=='0'&&text[1]=='\0')
         text[0]='6';
         else
         text[len] = '6' ;
         text[len+1] = '\0';
         SetDlgItemText(hDlg,IDC_SIZE_MM,text);
         break;
     case BOTTON+13:
         GetDlgItemText(hDlg,IDC_SIZE_MM,text, 1024);
         len = strlen(text);
         if(text[0]=='0'&&text[1]=='\0')
         text[0]='3';
         else
         text[len] = '3' ;
         text[len+1] = '\0';
         SetDlgItemText(hDlg,IDC_SIZE_MM,text);
         break;
     case BOTTON+3:
         GetDlgItemText(hDlg,IDC_SIZE_MM,text, 1024);
         len = strlen(text);
         if(text[0]=='0'&&text[1]=='\0')
         text[0]='7';
         else
         text[len] = '7' ;
         text[len+1] = '\0';
         SetDlgItemText(hDlg,IDC_SIZE_MM,text);
         break;
     case BOTTON+4:
         GetDlgItemText(hDlg,IDC_SIZE_MM,text, 1024);
         len = strlen(text);
         if(text[0]=='0'&&text[1]=='\0')
         text[0]='4';
         else
         text[len] = '4' ;
         text[len+1] = '\0';
         SetDlgItemText(hDlg,IDC_SIZE_MM,text);
         break;
     case BOTTON+5:
         GetDlgItemText(hDlg,IDC_SIZE_MM,text, 1024);
         len = strlen(text);
         if(text[0]=='0'&&text[1]=='\0')
         text[0]='1';
         else
         text[len] = '1' ;
         text[len+1] = '\0';
         SetDlgItemText(hDlg,IDC_SIZE_MM,text);
         break;
     case BOTTON+6:
         GetDlgItemText(hDlg,IDC_SIZE_MM,text, 1024);
         len = strlen(text);
         if(text[0]=='0'&&text[1]=='\0')
         break;
         else
         text[len] = '0' ;
         text[len+1] = '\0';
         SetDlgItemText(hDlg,IDC_SIZE_MM,text);
         break;
     case BOTTON+7:
         GetDlgItemText(hDlg,IDC_SIZE_MM,text, 1024);
         len = strlen(text);
         if(text[0]=='0'&&text[1]=='\0')
         text[0]='8';
         else
         text[len] = '8' ;
         text[len+1] = '\0';
         SetDlgItemText(hDlg,IDC_SIZE_MM,text);
         break;
     case BOTTON+8:
         GetDlgItemText(hDlg,IDC_SIZE_MM,text, 1024);
         len = strlen(text);
         if(text[0]=='0'&&text[1]=='\0')
         text[0]='5';
         else
         text[len] = '5' ;
         text[len+1] = '\0';
         SetDlgItemText(hDlg,IDC_SIZE_MM,text);
         break;
     case BOTTON+9:
         GetDlgItemText(hDlg,IDC_SIZE_MM,text, 1024);
         len = strlen(text);
         if(text[0]=='0'&&text[1]=='\0')
         text[0]='2';
         else
         text[len] = '2' ;
         text[len+1] = '\0';
         SetDlgItemText(hDlg,IDC_SIZE_MM,text);
         break;     case BOTTON+10:         GetDlgItemText(hDlg,IDC_SIZE_MM,text, 1024);         d[0]='-';         if(text[0]=='-'){         len=strlen(text);         for(j=0;j<len;j++)buffer[j]=text[j+1];         SetDlgItemText(hDlg,IDC_SIZE_MM,buffer);         break;}else         sprintf(buffer,"%s%s",d,text);         SetDlgItemText(hDlg,IDC_SIZE_MM,buffer);         break;
     case BOTTON+14:
         GetDlgItemText(hDlg,IDC_SIZE_MM,text, 1024);         if(k==6)break;         else
         len = strlen(text);         
         text[len] = '.' ;
         text[len+1] = '\0';
         SetDlgItemText(hDlg,IDC_SIZE_MM,text);         k=6;
         break;     case BOTTON+1:
         SetDlgItemText(hDlg,IDC_SIZE_MM,"0");         k=0;         n=0;
         break;
     case BOTTON+2:
         SetDlgItemText(hDlg,IDC_SIZE_MM,"0");         k=0;         n=0;
         break;     case BOTTON+15:         GetDlgItemText(hDlg,IDC_SIZE_MM,text, 1024);
         sprintf(buffer,"%s",text);
         n=4;         k=0;
         SetDlgItemText(hDlg,IDC_SIZE_MM,"0");
         break;     case BOTTON+16:         GetDlgItemText(hDlg,IDC_SIZE_MM,text, 1024);
         sprintf(buffer,"%s",text);
         n=3;         k=0;
         SetDlgItemText(hDlg,IDC_SIZE_MM,"0");
         break;     case BOTTON+17:         GetDlgItemText(hDlg,IDC_SIZE_MM,text, 1024);
         sprintf(buffer,"%s",text);
         n=2;         k=0;
         SetDlgItemText(hDlg,IDC_SIZE_MM,"0");
         break;
     case BOTTON+18:
         GetDlgItemText(hDlg,IDC_SIZE_MM,text, 1024);
         sprintf(buffer,"%s",text);
         n=1;         k=0;
         SetDlgItemText(hDlg,IDC_SIZE_MM,"0");
         break;     case BOTTON+19:
         GetDlgItemText(hDlg,IDC_SIZE_MM,text, 1024);         z=sqrt(atof(text));         sprintf(c,"%0.12f",z);            len=strlen(c)-1;            for(j=0;j<len;j++){              if(c[len-j]=='0')c[len-j]='\0';              else if(c[len-j]=='.'){                  c[len-j]='\0';                  j=len;}              else j=len;            }
         SetDlgItemText(hDlg,IDC_SIZE_MM,c);
         break;     case BOTTON+21:
         GetDlgItemText(hDlg,IDC_SIZE_MM,text, 1024);         z=1/atof(text);         sprintf(c,"%.12f",z);            len=strlen(c)-1;            for(j=0;j<len;j++){              if(c[len-j]=='0')c[len-j]='\0';              else if(c[len-j]=='.'){                  c[len-j]='\0';                  j=len;}              else j=len;            }         SetDlgItemText(hDlg,IDC_SIZE_MM,c);         break;
    case BOTTON+22:           GetDlgItemText(hDlg,IDC_SIZE_MM,text, 1024);     if(n==1){          z=atof(buffer)+atof(text);            sprintf(c,"%.12f",z);            len=strlen(c)-1;            for(j=0;j<len;j++){              if(c[len-j]=='0')c[len-j]='\0';              else if(c[len-j]=='.'){                  c[len-j]='\0';                  j=len;}              else j=len;            }            SetDlgItemText(hDlg,IDC_SIZE_MM,c);           i=strlen(buffer);           for(j=0;j<i;j++)           buffer[j]='\0';           i=strlen(c);           for(j=0;j<i;j++)           c[j]='\0';           break;    }else if(n==2){          z=atof(buffer)-atof(text);            sprintf(c,"%.12f",z);            len=strlen(c)-1;            for(j=0;j<len;j++){              if(c[len-j]=='0')c[len-j]='\0';              else if(c[len-j]=='.'){                  c[len-j]='\0';                  j=len;}              else j=len;            }            SetDlgItemText(hDlg,IDC_SIZE_MM,c);           i=strlen(buffer);           for(j=0;j<i;j++)           buffer[j]='\0';           i=strlen(c);           for(j=0;j<i;j++)           c[j]='\0';           break;  }else if(n==3){          z=atof(buffer)*atof(text);            sprintf(c,"%.12f",z);            len=strlen(c)-1;            for(j=0;j<len;j++){              if(c[len-j]=='0')c[len-j]='\0';              else if(c[len-j]=='.'){                  c[len-j]='\0';                  j=len;}              else j=len;            }            SetDlgItemText(hDlg,IDC_SIZE_MM,c);           i=strlen(buffer);           for(j=0;j<i;j++)           buffer[j]='\0';           i=strlen(c);           for(j=0;j<i;j++)           c[j]='\0';           break;  }else if(n==4){          z=atof(buffer)/atof(text);            sprintf(c,"%.12f",z);            len=strlen(c)-1;            for(j=0;j<len;j++){              if(c[len-j]=='0')c[len-j]='\0';              else if(c[len-j]=='.'){                  c[len-j]='\0';                  j=len;}              else j=len;            }            SetDlgItemText(hDlg,IDC_SIZE_MM,c);           i=strlen(buffer);           for(j=0;j<i;j++)           buffer[j]='\0';           i=strlen(c);           for(j=0;j<i;j++)           c[j]='\0';           break;  }else           break;
        case MSG_CLOSE:
            EndDialog (hDlg, wParam);
            break;
        }
        break;
    }
    
    return DefaultDialogProc (hDlg, message, wParam, lParam);
}

static void InputLenDialogBox (HWND hWnd, double* length)
{
    DlgBoxInputLen.controls = CtrlInputLen;
    
    DialogBoxIndirectParam (&DlgBoxInputLen, hWnd, InputLenDialogBoxProc, (LPARAM)length);
}

int MiniGUIMain (int argc, const char* argv[])
{  
      double length;
#ifdef _LITE_VERSION
    SetDesktopRect(0, 0, 1024, 768);
#endif
    InputLenDialogBox (HWND_DESKTOP, &length);
    return 0;
}

#ifndef _LITE_VERSION
#include <minigui/dti.c>
#endif

⌨️ 快捷键说明

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