📄 ͼ
字号:
#include <graphics.h>
#include <stdio.h>
#include <fcntl.h>
#include <string.h>
#include <dos.h>
#include <conio.h>
#include <stdlib.h>
#include <alloc.h>
int openhzkc(char);
int puthz16c(int,int,int,int,int,int);
int getbitc(unsigned char,int);
int handle,handle1,flag1,testm,test1;
FILE *fp1;
main( )
{
char ch,s[1024],*str;
int gdriver,gmode,ii,ii1,x,y,fx,fy,color1;
int loop_font,loop_size;
/* 图形设备初始化*/
gdriver=DETECT;
initgraph(&gdriver,&gmode,"c:\\tc");
setbkcolor(LIGHTGREEN);
setcolor(RED);
…
int mainmenu( )/*主菜单*/
{
char c;
int x,y,key,key1,key2,size,test,i;
void *buffer;
unsigned char *f[ ]={"命令 ","显示 ","生产 ","设备 ",
"工艺","技术","维护 ","帮助 "};
setcolor(12);
rectangle(1,0,637,33);
setfillstyle(1,3);
floodfill(200,20,12);
setcolor(LIGHTRED);
setlinestyle(0,0,3);
rectangle(1,0,637,479);
c='f';
openhzk(c);
x=-12;
for(i=0;i<=7;i++)
x=puthz24(x+24,6,0,1,f[i]);
close(handle);
setcolor(12);
size=imagesize(3,2,75,31);
buffer=malloc(size);
getimage(3,2,75,31,buffer);
putimage(3,2,buffer,NOT_PUT);
x=3;
key1=0;
while(key1!=13)
{
while(bioskey(1)==0);
key1=key2=bioskey(0);
key1=key1&0xff;
key2=key2&0xff?0:key2>>8;
if(key2==75||key2==77)
{
putimage(x,2,buffer,COPY_PUT);
if(key2==77)x=x>=507?3:x+72;
if(key2==75)x=x<=3?507:x-72;
getimage(x,2,x+72,31,buffer);
putimage(x,2,buffer,NOT_PUT);
}
}
testm=(x-3)/72+1;
if(testm>=3)
{
testm=1;
test1=8;
free(buffer);
exit_flag=1;
return;
}
switch(testm)
{
case 1:
menu11( );
break;
case 2:
menu12();
break;
case 3:
cwin();
break;
case 4:
cdos();
break;
case 5:
cwin();
break;
case 6:
cwin();
break;
case 7:
cwin();
break;
case 8:
cwin();
break;
}
free(buffer);
}
int cwin()
{
do17();
system("win");
do11();
do12();
do14();
}
int cdos()
{
do17();
system("upbat");
do11();
do12();
do14();
}
int menu11()/* 子菜单*/
{
unsigned char *f[]={"加监督","送日期","设备表","开机 ","停机 ",
"停显示","退监督","退系统"};
int x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6;
x1=27;y1=35;
x2=x1+5;y2=y1+5;
x3=x2+5;y3=y2+5;
x4=x3+24*3;y4=y3+20;
x5=x4+5;y5=y3+8*20+5;
x6=x5+5;y6=y5+5;
submenu(x1,y1,x2,y2,x3,y3,x4,y4,x5,y5,x6,y6,f);
}
int submenu(int x1,int y1,int x2,int y2,int x3,int y3,int x4,int y4,int x5,
int y5,int x6,int y6,unsigned char *submf[])
{
int h,t;
int i,y,key1,key2,size0,size1;
void *buf0,*buf1;
char c;
h=y4-y3;
t=(y5-y3)/20-1;
size0=imagesize(x1,y1,x6,y6);
buf0=malloc(size0);
getimage(x1,y1,x6,y6,buf0);
setcolor(12);
rectangle(x1+1,y1+1,x6-1,y6-1);
setfillstyle(1,12);
floodfill(x1+2,y1+2,12);
setcolor(3);
setlinestyle(SOLID_LINE,0,1);
rectangle(x2,y2,x5,y5);
setfillstyle(1,3);
floodfill(x2+2,y2+2,3);
c='o';
openhzk(c);
for(i=0;i<=t;i++)
puthz16(x3,i*h+y3,4,14,submf[i]);
close(handle);
size1=imagesize(x3,y3,x4,y4-4);
buf1=malloc(size1);
getimage(x3,y3,x4,y4-4,buf1);
putimage(x3,y3,buf1,NOT_PUT);
y=y3;key1=0;
while(key1!=13&&key1!=27)
{
while(bioskey(1)==0);
}
key1=key2=bioskey(0);
key1=key1&0xff;
key2=key2&0xff?0:key2>>8;
if(key2==72||key2==80)
{
putimage(x3,y,buf1,COPY_PUT);
if(key2==72)y=y==y3?y5-h-5:y-h;
if(key2==80)y=y==y5-h-5?y3:y+h;
getimage(x3,y,x4,y+h-5,buf1);
putimage(x3,y,buf1,NOT_PUT);
}
}
free(buf1);
if(key1==13)test1=(y-y3)/h+1;
if(key1==27)test1=0;
putimage(x1,y1,buf0,COPY_PUT);
free(buf0);
}
/*打开汉字库*/
int openhzkc(char c)
{
if(c=='s')
handle=open("c:\\HZK24S",O_RDONLY|O_BINARY);
if(c=='o')
handle1=open("c:\\HZK16",O_RDONLY|O_BINARY);
if(c=='t')
handle=open("c:\\HZK24T",O_RDONLY|O_BINARY);
if(c=='f')
handle=open("c:\\HZK24F",O_RDONLY|O_BINARY);
if(c=='h')
handle=open("c:\\HZK24H",O_RDONLY|O_BINARY);
if(c=='k')
handle=open("c:\\HZK24K",O_RDONLY|O_BINARY);
if(handle==-1||handle1==-1)
{
puts("Error on open cclib.dat");
getch( );
closegraph( );
exit(1);
}
}
/*显示24 24点阵汉字*/
int puthz24c(int x,int y,int z,int color,int nx,int ny)
{
unsigned char ch;
unsigned int i,c1,c2,f=0;
int i1,i2,i3,i4,i5,rec,j=0,x0;
long l;
char by[72];
x0=x;
fp1=fopen("c:\\gg3.doc","r");
if(fp1==NULL)
{
printf("cannon open *.dot file\n");
exit(1);
}
while(!feof(fp1))
{
ch=getc(fp1);
i=ch;
if(ch=='\b'||ch=='\n'||ch=='\r')
{
j=0;
x=x0;y+=24*ny;
continue;
}
if(i>=0xa1)
{
if(f==0)
{
c1=(i-0xa1)&0x07f;
f=1;
}
else
{
c2=(i-0xa1)&0x07f;
f=0;
rec=(c1-15)*94+c2;
l=rec*72L;
lseek(handle,l,SEEK_SET);
read(handle,by,72);
for(i1=0;i1<24*nx;i1+=nx)
for(i4=0;i4<nx;i4++)
for(i2=0;i2<3;i2++)
for(i3=0;i3<8;i3++)
if(getbit(by[i1/nx*3+i2],7-i3))
for(i5=0;i5<ny;i5++)
{
putpixel(x+i1+i4,y+i2*8*ny+i3*ny+i5,color);
delay(1);
}
x=x+24*nx+z;
j+=6*nx;
}
}
else
{
x=x+8*nx;
j+=1*nx;
}
}
fclose(fp1);
}
int getbitc(unsigned char c,int n)
{
return((c>>n)&1);
}
/*显示16 16点阵汉字*/
int puthz16(int x,int y,int z,int color,char *p)
{
unsigned int i,c1,c2,f=0;
int i1,i2,i3,rec;
long l;
char by[32];
while((i=*p++)!=0)
{
if(i>0xa1)
if(f==0)
{
c1=(i-0xa1)&0x07f;
f=1;
}
else
{
c2=(i-0xa1)&0x07f;
f=0;
rec=c1*94+c2;
l=rec*32L;
lseek(handle,l,SEEK_SET);
read(handle,by,32);
for(i1=0;i1<16;i1++)
for(i2=0;i2<2;i2++)
for(i3=0;i3<8;i3++)
if(getbit(by[i1*2+i2],7-i3))
putpixel(x+i2*8+i3,y+i1,color);
x=x+16+z;
}
}
return(x);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -