📄 jsq1.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 + -