📄 grap1.c
字号:
#include "svgacc.h"
#include <dos.h>
#include <bios.h>
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <io.h>
#include <time.h>
#include <string.h>
#define enter 13
#define esc 27
#define ESC 27
#define BACKSPACE 8
#define ENTER 13
#define kbF1 187
#define kbF2 188
#define kbF3 189
#define kbF4 190
#define kbF5 191
#define kbF6 192
#define kbF7 193
#define kbUp 200
#define kbDn 208
#define kbCtrlE 5
#define kbCtrlZ 26
#define BLACK 0
#define lBLUE 1
#define lGREEN 2
#define lCYAN 3
#define lRED 4
#define lPINK 5
#define lYELLOW 6
#define lWHITE 7
#define GRAY 8
#define BLUE 9
#define GREEN 10
#define CYAN 11
#define RED 12
#define PINK 13
#define YELLOW 14
#define WHITE 15
static char ASCbuf[4096];
FILE *fpHZ;
void drwhzstr(char *s,int x,int y,int m,int n,int col,PixelMode mode);
void hzstr(char *s,int k,int x,int y);
void drwstr(char *s,int x,int y,int m,int n,int col,PixelMode mode);
void drwbutton1(char *phstr,char *str,int x,int y,PixelMode i,int col11);
void drwbutton(char *phstr,char *str,int x,int y,PixelMode i,int col11) ;
void drwbutton2(int x1,int y1,int w,int h,PixelMode i,int col);
int getkey();
void drwhz24str(char *s,int x,int y,int m,int n,int col,int mode);
void main(void)
{
char buf1[4];
int ok;
char j;
FILE *fp;
char *buf;
buf=(char *)calloc(1,40);
if ((fpHZ=fopen("hzk16","rb"))==NULL)
{ printf("open hzk16 error\n");
exit(0);
}
if ((fp=fopen("asc16","rb"))==NULL)
{ printf("open file error");
exit(1);
}
if (fgets(ASCbuf,4096,fp)==NULL)
{
printf("error");
exit(1);
}
whichvga();
res800();
ok=0;
/* windows(0,0,800,600); */
/* 图头 */
drwbox(SET,lPINK,0,0,800,600);
drwbox(SET,lPINK,1,1,799,599);
drwbox(SET,lPINK,2,2,798,598);
drwfillbox(SET,BLACK,3,3,797,597);
drwline(SET,lPINK,2,22,799,22);
drwline(SET,lPINK,2,22,799,22);
drwfillbox(SET,WHITE,3,3,798,21);
strcpy(buf,"瓦楞纸板生产线管理系统--湿部状态显示");
hzstr(buf,lRED,5,1);
drwbox(SET,lYELLOW,5,25,795,80);
drwbox(SET,lYELLOW,6,26,794,79);
drwfillbox(SET,WHITE,7,27,793,78);
strcpy(buf,"湖北京山轻工机械股份有限公司");
drwhzstr(buf,132,36,1,2,RED,SET);
strcpy(buf,"地址:湖北省京山县新市镇轻机大道");
drwhzstr(buf,210,62,1,1,RED,SET);
strcpy(buf,"78");
drwstring(SET,lPINK,15,buf,450,64);
strcpy(buf,"号");
drwhzstr(buf,466,62,1,1,lPINK,SET);
strcpy(buf,"博成电脑");
drwhz24str(buf,600,36,2,2,lPINK,SET);
drwbox(SET,lYELLOW,5,86,795,194);
drwbox(SET,lYELLOW,6,87,794,193);
drwfillbox(SET,lBLUE,7,88,793,192);
drwbox(SET,YELLOW,9,90,575,190);
drwbox(SET,YELLOW,10,91,574,189);
drwline(SET,YELLOW,82,90,82,190);
drwline(SET,YELLOW,205,90,205,190);
drwline(SET,YELLOW,328,90,328,190);
drwline(SET,YELLOW,451,90,451,190);
drwline(SET,YELLOW,9,114,575,114);
drwline(SET,YELLOW,9,152,451,152);
drwline(SET,YELLOW,9,90,82,114);
strcpy(buf,"上层横切");
drwhzstr(buf,14,125,1,1,YELLOW,SET);
strcpy(buf,"下层横切");
drwhzstr(buf,14,163,1,1,YELLOW,SET);
strcpy(buf,"切断长度");
drwhzstr(buf,111,94,1,1,YELLOW,SET);
strcpy(buf,"切断数量");
drwhzstr(buf,234,94,1,1,YELLOW,SET);
strcpy(buf,"剩余长度");
drwhzstr(buf,357,94,1,1,YELLOW,SET);
strcpy(buf,"烘干机限速");
drwhzstr(buf,472,94,1,1,YELLOW,SET);
drwbox(SET,YELLOW,576,90,792,190);
drwbox(SET,YELLOW,576,91,791,189);
drwfillbox(SET,BLACK,577,92,790,188);
drwfillbox(SET,CYAN,9,200,72,220);
strcpy(buf,"工号");
drwfillbox(SET,CYAN,74,200,115,220);
drwhzstr(buf,76,202,1,1,lPINK,SET);
strcpy(buf,"定单号");
drwfillbox(SET,CYAN,117,200,169,220);
drwhzstr(buf,119,202,1,1,lPINK,SET);
drwfillbox(SET,RED,9,224,72,242);
strcpy(buf,"已生产");
drwhzstr(buf,18,226,1,1,WHITE,SET);
drwfillbox(SET,GREEN,9,250,72,270);
strcpy(buf,"生产中");
drwhzstr(buf,18,252,1,1,lPINK,SET);
drwfillbox(SET,BLUE,9,278,72,298);
strcpy(buf,"待生产");
drwhzstr(buf,18,280,1,1,RED,SET);
strcpy(buf,"纸质");
drwfillbox(SET,CYAN,171,200,550,220);
drwhzstr(buf,353,202,1,1,lPINK,SET);
strcpy(buf,"纸宽");
drwfillbox(SET,CYAN,552,200,593,220);
drwhzstr(buf,555,202,1,1,lPINK,SET);
strcpy(buf,"剖数");
drwfillbox(SET,CYAN,595,200,636,220);
drwhzstr(buf,600,202,1,1,lPINK,SET);
strcpy(buf,"长度");
drwfillbox(SET,CYAN,638,200,679,220);
drwhzstr(buf,642,202,1,1,lPINK,SET);
strcpy(buf,"数量");
drwfillbox(SET,CYAN,681,200,748,220);
drwhzstr(buf,699,202,1,1,lPINK,SET);
strcpy(buf,"限速");
drwfillbox(SET,CYAN,750,200,791,220);
drwhzstr(buf,757,202,1,1,lPINK,SET);
strcpy(buf1,"ESC");
strcpy(buf,"退出系统");
drwbutton(buf1,buf,690,537,SET,lGREEN);
strcpy(buf1,"Up/Dn");
strcpy(buf,"上/下层选择");
drwbutton1(buf1,buf,690,474,SET,lGREEN);
drwbox(SET,38,5,474,684,594);
drwbox(SET,38,6,474,683,593);
drwfillbox(SET,14,7,475,682,592);
drwline(SET,38,5,514,684,514);
drwline(SET,38,5,554,684,554);
drwline(SET,38,77,473,77,594);
drwline(SET,38,229,473,229,594);
drwline(SET,38,381,473,381,594);
drwline(SET,38,533,473,533,594);
strcpy(buf,"湿部机型");
drwhzstr(buf,10,486,1,1,38,SET);
strcpy(buf,"速度");
drwhzstr(buf,10,526,1,1,38,SET);
strcpy(buf,"积纸");
drwhzstr(buf,10,566,1,1,38,SET);
strcpy(buf,"A");
drwstr(buf,125,486,1,1,BLACK,SET);
strcpy(buf,"单面机");
drwhzstr(buf,133,486,1,1,38,SET);
strcpy(buf,"C");
drwstr(buf,277,486,1,1,BLACK,SET);
strcpy(buf,"单面机");
drwhzstr(buf,285,486,1,1,38,SET);
strcpy(buf,"B");
drwstr(buf,429,486,1,1,BLACK,SET);
strcpy(buf,"单面机");
drwhzstr(buf,437,486,1,1,38,SET);
strcpy(buf,"D");
drwstr(buf,581,486,1,1,BLACK,SET);
strcpy(buf,"烘干机");
drwhzstr(buf,589,486,1,1,38,SET);
strcpy(buf,"tu.pcx");
pcxmake(0,0,799,599,buf);
while(!ok)
{
while (kbhit())
{j=(char)getkey();
switch (j)
{case esc:
ok=1;
break;
case enter:
ok=0;
break;
}
}
sdelay(60);
_strtime(buf);
}
fclose(fpHZ);
restext();
}
void drwhzstr(char *s,int x,int y,int m,int n,
int col,PixelMode mode)
{ unsigned char dot[16][2],qm,wm;
long offset1;
register i,j,k,mm,nn,mask;
while(*s)
{ qm=(unsigned char)(s[0]-0xa1);
s+=1;
wm=(unsigned char)(s[0]-0xa1);
offset1=((long)qm*94+(long)wm)*32;
s+=1;
fseek(fpHZ,offset1,SEEK_SET);
for(i=0;i<=15;i++)
{for(j=0;j<2;j++)
{ dot[i][j]=(unsigned char)fgetc(fpHZ);
mask=0x80;
for(k=0;k<=7;k++)
{if (dot[i][j]&mask)
{for(nn=0;nn<n;nn++)
{for(mm=0;mm<m;mm++)
drwpoint(mode,col,x+(j*8+k)*n+nn,y+i*m+mm);
}
}
mask=mask>>1;
}
}
}
x+=15*n;
}
}
int getkey(void)
{ union REGS in,out;
in.h.ah=0x8;
int86(0x21,&in,&out);
if(out.h.al==0)
return getkey()+128;
else
return out.h.al;
}
void drwstr(char *s,int x,int y,int m,int n,
int col,PixelMode mode)
{ unsigned char dot[16][2];
long offset1;
register i,j,k,mm,nn,mask;
while(*s)
{ offset1=(long)(*s)*16;
s+=1;
j=0;
for(i=0;i<=15;i++)
{ dot[i][j]=ASCbuf[offset1+i];
mask=0x80;
for(k=0;k<=7;k++)
{if (dot[i][j]&mask)
{for(nn=0;nn<n;nn++)
{for(mm=0;mm<m;mm++)
drwpoint(mode,col,x+(j*8+k)*n+nn,y+i*m+mm);
}
}
mask=mask>>1;
}
}
x+=8*n;
}
}
void hzstr(char *s,int k,int x,int y)
{
int ilen;
int i,count11,count12;
char buff[2];
char buff1[3];
ilen=strlen(s);
count11=0;
count12=0;
for(i=0;i<ilen;i++)
{
if(s[i]<0)
{ buff1[0]=s[i];
buff1[1]=s[i+1];
buff1[2]='\0';
i++;
drwhzstr(buff1,x+2+count11*16+count12*8,y+4,1,1,k,SET);
count11++;
}
else
if(s[i]>0)
{ buff[0]=s[i];
buff[1]='\0';
drwstr(buff,x+2+count11*16+count12*8,y+4,1,1,k,SET);
count12++;
}
}
}
void drwbutton(char *phstr,char *str,int x,int y,PixelMode i,int col11)
{
int k,j;
int xn,yn;
k=strlen(phstr);
j=strlen(str);
xn=x+j*16-26;
yn=y+2+16+20+16+2;
drwline(i,7,x,y,xn,y);
drwline(i,7,x,y-1,xn+1,y-1);
drwline(i,7,x,y-2,xn+2,y-2);
drwline(i,7,x,y-2,x,yn);
drwline(i,7,x-1,y-2,x-1,yn+1);
drwline(i,7,x-2,y-2,x-2,yn+2);
drwline(i,0,xn+2,y-1,xn+2,yn+2);
drwline(i,0,xn+1,y,xn+1,yn+2);
drwline(i,0,xn,y+1,xn,yn+2);
drwline(i,0,x-1,yn+2,xn+2,yn+2);
drwline(i,0,x,yn+1,xn+2,yn+1);
drwline(i,0,x+1,yn,xn+2,yn);
drwfillbox(i,col11,x+1,y+1,xn-1,yn-1);
drwstr(phstr,x+(xn-x)/2-k*16/2,y+4,1,2,BLACK,i); /*x+(j*16)/2-(8*k)/2,y+2,1,1,0,i);*/
hzstr(str,RED,x+18,y+2+16+14);
}
void drwbutton1(char *phstr,char *str,int x,int y,PixelMode i,int col11)
{
int k,j;
int xn,yn;
k=strlen(phstr);
j=strlen(str);
xn=x+j*8+14;
yn=y+2+16+20+16+2;
drwline(i,7,x,y,xn,y);
drwline(i,7,x,y-1,xn+1,y-1);
drwline(i,7,x,y-2,xn+2,y-2);
drwline(i,7,x,y-2,x,yn);
drwline(i,7,x-1,y-2,x-1,yn+1);
drwline(i,7,x-2,y-2,x-2,yn+2);
drwline(i,0,xn+2,y-1,xn+2,yn+2);
drwline(i,0,xn+1,y,xn+1,yn+2);
drwline(i,0,xn,y+1,xn,yn+2);
drwline(i,0,x-1,yn+2,xn+2,yn+2);
drwline(i,0,x,yn+1,xn+2,yn+1);
drwline(i,0,x+1,yn,xn+2,yn);
drwfillbox(i,col11,x+1,y+1,xn-1,yn-1);
drwstr(phstr,x+(xn-x)/2-k*16/2,y+4,1,2,BLACK,i);
hzstr(str,RED,x+5,y+2+16+14);
}
void drwbutton2(int x1,int y1,int w,int h,PixelMode i,int col)
{
/* int k,j;
int xn,yn;
k=strlen(phstr);
j=strlen(str);
xn=x+j*8+14;
yn=y+2+16+20+16+2;*/
int x,y,xn,yn;
x1=x-2;
y1=y-2;
xn=x1+w-2;
yn=y1+h-2;
drwline(i,7,x,y,xn,y);
drwline(i,7,x,y-1,xn+1,y-1);
drwline(i,7,x,y-2,xn+2,y-2);
drwline(i,7,x,y-2,x,yn);
drwline(i,7,x-1,y-2,x-1,yn+1);
drwline(i,7,x-2,y-2,x-2,yn+2);
drwline(i,0,xn+2,y-1,xn+2,yn+2);
drwline(i,0,xn+1,y,xn+1,yn+2);
drwline(i,0,xn,y+1,xn,yn+2);
drwline(i,0,x-1,yn+2,xn+2,yn+2);
drwline(i,0,x,yn+1,xn+2,yn+1);
drwline(i,0,x+1,yn,xn+2,yn);
drwfillbox(i,col,x+1,y+1,xn-1,yn-1);
/*drwstr(phstr,x+(xn-x)/2-k*16/2,y+4,1,2,BLACK,i); */
/*hzstr(str,RED,x+5,y+2+16+14);*/
}
void drwhz24str(char *s,int x,int y,int m,int n,
int col,int mode)
{ unsigned char dot[24][3],qm,wm;
long offset1;
register i,j,k,mm,nn,mask;
FILE *fpHZ;
if((fpHZ=fopen("hzk24k","rb"))==0)
{printf("Error: HZK24K can't open.\n");
exit(0);
}
while(*s)
{ qm=(unsigned char)(s[0]-0xa0);
s+=1;
wm=(unsigned char)(s[0]-0xa0);
offset1=((long)(qm-16)*94+(long)(wm-1))*72L;
s+=1;
fseek(fpHZ,offset1,SEEK_SET);
for(i=0;i<24;i++)
{for(j=0;j<3;j++)
{ dot[i][j]=fgetc(fpHZ);
mask=0x80;
for(k=0;k<=7;k++)
{if (dot[i][j]&mask)
{for(nn=0;nn<n;nn++)
{for(mm=0;mm<m;mm++)
drwpoint(mode,col,x+i*2,y+(j*8+k));
}
}
mask=mask>>1;
}
}
}
x+=48;
}
fclose(fpHZ);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -