📄 menu_1.cpp
字号:
#include <dos.h>
#include <math.h>
#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <alloc.h>
#include <bios.h>
#include <string.h>
#include <graphics.h>
#include <time.h>
#include <io.h>
#include <float.h>
#include <stat.h>
#include <fcntl.h>
#include <dir.h>
#include "mouse.h"
#include "menu_d.h"
#include "new2.h"
struct setpara {
int fuji_v;
int fuji_t;
int first_v;
int end_v;
int pulse;
int p_width;
int t_width;
int slope;
int brush_v;
int brush_t;
int stat_t;
int sel_R;
int sel_bl;
} spara;
struct ivpointer{
float current;
float insist;
int scan_v;
}ivp[1802];
struct ivdiffrance{
float current;
int scan_v;
}ivd[1804];
struct ivtop{
float current[100];
int scan_v[100];
}ivtop;
struct wpeak{
float current;
int scan_v;
}wp[100];
int pi;
struct wbottm{
float current;
int scan_v;
}wb[100];
struct date d;
struct time t;
struct temp_d{
int te_year;
int te_day;
int te_mon;
}te_d;
struct temp_t{
int te_hour;
int te_min;
int te_sec;
}te_t;
float insist_set[16]={232,472,942,2442,4842,9942,24942,51042,
100942,200942,350942,620942,1090942,2090942,4090942,6790942};
float insist,max;
int count,con1,con2;
int max_num;
int mouse_test_sign=0;
int step;
int sub_num[7]={4,4,3,3,2,4,2};
int flag=FALSE;
int mc_flag=0;
float cur_flag=1000;
char *filename[1]={"*.lin ",};
int rate_flag=3;
struct ssys{
int prn;
int IE;
int QD;
int SM;
}sz_sys;
extern struct pd_str m_menu[MAIN_OPT]={
"系统维护",
help_0,
"参数设置",
"系统时钟",
"DOS命令",
"退出系统",
"",
"",
cssz,
jp_clock,
shell,
exit_con,
0,
0,
"测试方法",
help_1,
"差示脉冲溶出",
"差示脉冲伏安",
"线性扫描伏安",
"循环扫描伏安",
"",
"",
scrc,
scmc,
smfa,
xhfa,
0,
0,
"校准方法",
help_2,
"双标类推法",
"外推加入法",
"校准曲线法",
"",
"",
"",
sblt,
bzjr,
gzqx,
0,
0,
0,
"文件调用",
help_3,
"测试曲线",
"校准数据",
"当前曲线",
"",
"",
"",
scrn_diao,
spara_diao,
just_scrn,
0,
0,
0,
"文件存盘",
help_4,
"测试曲线",
"校准数据",
"",
"",
"",
"",
scrn_cun,
spara_cun,
0,
0,
0,
0,
" 打 印 ",
help_6,
"测试曲线",
"求导曲线",
"校准曲线",
"窗口内容",
"",
"",
IE_line,
QD_line,
JZ_line,
print_win,
0,
0,
"硬件检测",
help_5,
"分析卡检测",
"工作台检测",
"",
"",
"",
"",
xtzj,
gztzj,
0,
0,
0,
0,
};
int m_sign;
int sub_left,sub_top,M_Pointer=0,S_Pointer=0;
unsigned int size;
void far *buffer=(void far *)0xA0000000;
void print_win()
{
int p_flag=0;
int col1,col2,col3;
col1=getpixel(206,420);
col2=getpixel(208,460);
col3=getpixel(208,456);
if((col1==8)&&(col2==8)&&(col3==8)){
file_warn(9);
return;
}
p_flag=print_test();
if(p_flag<0) return;
if(col1!=8) print_2(12,60,630,470+25*sz_sys.prn,col1,14);
else if(col3!=8) print_2(12,60,630,470+25*sz_sys.prn,col3,col3);
else print_2(12,60,630,470+25*sz_sys.prn,col2,col2);
return;
}
void save_win(int left,int top,int right,int bottom)
{
sub_left=left;
sub_top=top;
size=imagesize(left,top,right,bottom);
buffer=malloc(size);
getimage(left,top,right,bottom,buffer);
}
void gun_pop()
{
putimage(sub_left,sub_top,buffer,COPY_PUT);
farfree(buffer);
flag=FALSE;
}
void submenu(int left,int top,int right,int bottom,int color)
{
int i,j;
save_win(left,top,right,bottom);
setfillstyle(SOLID_FILL,color-3);
bar(left,top,right,bottom);
setfillstyle(SOLID_FILL,color-1);
bar(left+4,top+4,right-4,bottom-4);
setcolor(14);
setlinestyle(0,1,1);
rectangle(left+2,top+2,right-2,bottom-2);
rectangle(left+4,top+4,right-4,bottom-4);
for(j=0;j<sub_num[M_Pointer];j++){
setfillstyle(SOLID_FILL,15);
for (i=3; i<5; i++)
{
setcolor(15);
line(left+15-i,top+16+j*26-i,left+110+i,top+16+j*26-i);
line(left+15-i,top+16+j*26-i,left+15-i,top+16+j*26+16+i);
setcolor(i);
line(left+110+i,top+16+j*26-i,left+110+i,top+16+j*26+16+i);
line(left+15-i,top+16+j*26+16+i,left+110+i,top+16+j*26+16+i);
}
disp_shadow_str(left+14,top+18+j*26,m_menu[M_Pointer].sub[j],0);
}
flag=TRUE;
}
void mouse_test(int c)
{
if(c>=8){
if(c==8) exit_con();
//else sys_win(2,24,80,90);
c=M_Pointer;
return;
}
else M_Pointer=c;
pull_bar(m_sign+2,3+step,m_sign+76,31+step);
m_sign=4+c*88;
push_bar(m_sign+2,3+step,m_sign+76,31+step);
while(BOY_MOUSE_BUTTON()!=0);
if(flag==TRUE) gun_pop();
if(S_Pointer>=sub_num[M_Pointer]) S_Pointer=sub_num[M_Pointer]-1;
submenu(m_sign-4*M_Pointer,36+step,m_sign+124-4*M_Pointer,sub_num[M_Pointer]*26+54+step,8);
push_bar(m_sign-4*M_Pointer+9,S_Pointer*26+46+step,m_sign+116-4*M_Pointer,S_Pointer*26+74+step);
}
void mouse_sub_test(int c)
{
pull_bar(m_sign-4*M_Pointer+9,S_Pointer*26+46+step,m_sign+116-4*M_Pointer,S_Pointer*26+74+step);
if(c>=8){
if(c==8) exit_con();
//else sys_win(2,24,80,90);
c=S_Pointer;
}
else S_Pointer=c;
push_bar(m_sign-4*M_Pointer+9,S_Pointer*26+46+step,m_sign+116-4*M_Pointer,S_Pointer*26+74+step);
while(BOY_MOUSE_BUTTON()!=0);
gun_pop();
m_menu[M_Pointer].fun[S_Pointer]();
if(S_Pointer>=sub_num[M_Pointer]) S_Pointer=sub_num[M_Pointer]-1;
submenu(m_sign-4*M_Pointer,36+step,m_sign+124-4*M_Pointer,sub_num[M_Pointer]*26+54+step,8);
push_bar(m_sign-4*M_Pointer+9,S_Pointer*26+46+step,m_sign+116-4*M_Pointer,S_Pointer*26+74+step);
return;
}
int flag_test()
{
if(flag==FALSE) return(-1);
else return(M_Pointer);
}
int quit()
{
BOY_MOUSE_HIDE();
if(flag==FALSE) m_menu[M_Pointer].m_help();
else{
gun_pop();
m_menu[M_Pointer].m_help();
submenu(m_sign-4*M_Pointer,36+step,m_sign+124-4*M_Pointer,sub_num[M_Pointer]*26+54+step,8);
push_bar(m_sign-4*M_Pointer+9,S_Pointer*26+46+step,m_sign+116-4*M_Pointer,S_Pointer*26+74+step);
}
BOY_MOUSE_VIEW();
return(-1);
}
void ret_Main()
{
int i;
char *str[7];
for(i=0;i<=6;i++)
str[i]=m_menu[i].main;
Main_board(str);
push_bar(m_sign+2,3+step,m_sign+76,31+step);
return;
}
void shell(void)
{
struct viewporttype vp;
int mode;
getviewsettings( &vp );
mode = getgraphmode();
restorecrtmode();
printf("Type exit or EXIT return \n");
system("");
setgraphmode( mode );
ret_Main();
return;
}
void bios_test(int c)
{
if(flag==FALSE){
switch(c){
case 19712:
pull_bar(m_sign+2,3+step,m_sign+76,31+step);
M_Pointer++;
if(M_Pointer>6){
M_Pointer=0;
m_sign=4;
push_bar(m_sign+2,3+step,m_sign+76,31+step);
}
else{
pull_bar(m_sign+2,3+step,m_sign+76,31+step);
m_sign+=88;
push_bar(m_sign+2,3+step,m_sign+76,31+step);
}
break;
case 19200:
pull_bar(m_sign+2,3+step,m_sign+76,31+step);
M_Pointer--;
if(M_Pointer<0){
M_Pointer=6;
m_sign=532;
push_bar(m_sign+2,3+step,m_sign+76,31+step);
}
else{
pull_bar(m_sign+2,3+step,m_sign+76,31+step);
m_sign-=88;
push_bar(m_sign+2,3+step,m_sign+76,31+step);
}
break;
case 7181:
submenu(m_sign-4*M_Pointer,36+step,m_sign+124-4*M_Pointer,sub_num[M_Pointer]*26+54+step,8);
push_bar(m_sign-4*M_Pointer+9,S_Pointer*26+46+step,m_sign+116-4*M_Pointer,S_Pointer*26+74+step);
break;
case 20480:
submenu(m_sign-4*M_Pointer,36+step,m_sign+124-4*M_Pointer,sub_num[M_Pointer]*26+54+step,8);
push_bar(m_sign-4*M_Pointer+9,S_Pointer*26+46+step,m_sign+116-4*M_Pointer,S_Pointer*26+74+step);
break;
case 20736://PgDn
smaller();
break;
case 18688://PgUp
bigger();
break;
case 20011:
add_line(1,10);
break;
case 3389:
add_line(1,100);
break;
case -32000:
add_line(1,1);
break;
case 18989:
add_line(0,10);
break;
case 3117:
add_line(0,100);
break;
case -32256:
add_line(0,1);
break;
case 15104: //F1
m_menu[M_Pointer].m_help();
break;
case 15360://F2
scrn_cun();
break;
case 15616://F3
scrn_diao();
break;
case 26880://ALT+F2
spara_cun();
break;
case 27136://ALT+F3
spara_diao();
break;
case 24320://Ctrl+F2
spara_cun();
break;
case 24576://Ctrl+F3
spara_diao();
break;
case 15872://F4
m_menu[0].fun[0]();
break;
case 16128://F5
exit_con();
case 16384://F6
cls_all_scrn();
break;
case 16640: //F7
just_QD();
break;
case 16896: //F8
print_win();
break;
/* case 17152://F9
cls_all_scrn();
brush();
break;*/
/* case 17408: //F10
sys_win(2,24,80,90);
break;*/
case 3849:
tab_bigger();
break;
}
}
else{
switch(c){
case 19712:
pull_bar(m_sign+2,3+step,m_sign+76,31+step);
M_Pointer++;
gun_pop();
if(M_Pointer>6){
M_Pointer=0;
m_sign=4;
push_bar(m_sign+2,3+step,m_sign+76,31+step);
}
else{
pull_bar(m_sign+2,3+step,m_sign+76,31+step);
m_sign+=88;
push_bar(m_sign+2,3+step,m_sign+76,31+step);
}
if(S_Pointer>=sub_num[M_Pointer]) S_Pointer=sub_num[M_Pointer]-1;
submenu(m_sign-4*M_Pointer,36+step,m_sign+124-4*M_Pointer,sub_num[M_Pointer]*26+54+step,8);
push_bar(m_sign-4*M_Pointer+9,S_Pointer*26+46+step,m_sign+116-4*M_Pointer,S_Pointer*26+74+step);
break;
case 19200:
pull_bar(m_sign+2,3+step,m_sign+76,31+step);
M_Pointer--;
gun_pop();
if(M_Pointer<0){
M_Pointer=6;
m_sign=532;
push_bar(m_sign+2,3+step,m_sign+76,31+step);
}
else{
pull_bar(m_sign+2,3+step,m_sign+76,31+step);
m_sign-=88;
push_bar(m_sign+2,3+step,m_sign+76,31+step);
}
if(S_Pointer>=sub_num[M_Pointer]) S_Pointer=sub_num[M_Pointer]-1;
submenu(m_sign-4*M_Pointer,36+step,m_sign+124-4*M_Pointer,sub_num[M_Pointer]*26+54+step,8);
push_bar(m_sign-4*M_Pointer+9,S_Pointer*26+46+step,m_sign+116-4*M_Pointer,S_Pointer*26+74+step);
break;
case 18432: /*UP*/
pull_bar(m_sign-4*M_Pointer+9,S_Pointer*26+46+step,m_sign+116-4*M_Pointer,S_Pointer*26+74+step);
if(S_Pointer<=0) S_Pointer=sub_num[M_Pointer]-1;
else S_Pointer--;
push_bar(m_sign-4*M_Pointer+9,S_Pointer*26+46+step,m_sign+116-4*M_Pointer,S_Pointer*26+74+step);
break;
case 20480: /*DN*/
pull_bar(m_sign-4*M_Pointer+9,S_Pointer*26+46+step,m_sign+116-4*M_Pointer,S_Pointer*26+74+step);
if(S_Pointer>=sub_num[M_Pointer]-1) S_Pointer=0;
else S_Pointer++;
push_bar(m_sign-4*M_Pointer+9,S_Pointer*26+46+step,m_sign+116-4*M_Pointer,S_Pointer*26+74+step);
break;
case 18176: /*Home*/
pull_bar(m_sign-4*M_Pointer+9,S_Pointer*26+46+step,m_sign+116-4*M_Pointer,S_Pointer*26+74+step);
S_Pointer=0;
push_bar(m_sign-4*M_Pointer+9,S_Pointer*26+46+step,m_sign+116-4*M_Pointer,S_Pointer*26+74+step);
break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -