tool.c

来自「在以前公司DOS环境下」· C语言 代码 · 共 145 行

C
145
字号
/*24点阵*/
int 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("hzk24s.fnt","rb"))==0)
     {printf("Error: HZK24s.fnt can't open.\n");
      return FALSE;
     }
   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);
}           
/*16点阵*/  
 int drwhzstr(char *s,int x,int y,int m,int n,
             int col,int mode)
 { unsigned char dot[16][2],qm,wm;
   long offset1;
   register i,j,k,mm,nn,mask;
   FILE *fpHZ;

   if((fpHZ=fopen("hzk16","rb"))==0)
     {printf("Error: HZK16 can't open.\n");
      return FALSE;
     }
   while(*s)
     { qm=(unsigned char)(s[0]-0xa0);
       s+=1;
       wm=(unsigned char)(s[0]-0xa0);

       offset1=((long)(qm-1)*94+(long)(wm-1))*32;
       s+=1;
       fseek(fpHZ,offset1,SEEK_SET);
       for(i=0;i<=15;i++)
        {for(j=0;j<2;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+(j*8+k)*n+nn,y+i*m+mm);

                 }
               }
               mask=mask>>1;
             }
          }
        }
       x+=16*n;
     }
 fclose(fpHZ);
 }
/*按钮*/
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*8;
 yn=y+2+16+14+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);                
 drwhzstr(str,x+2,y+2+16+14,1,1,RED,i);
}
drwbox1(char *s,int x,int y,int cos1,int cox1,int high,int length,int fillcolor)
{

drwbox(SET,cos1,x,y,x+length,y+high);
drwbox(SET,cos1,x+1,y+1,x+length-1,y+high-1);
drwbox(SET,cox1,x+2,y+2,x+length,y+high);
drwbox(SET,cox1,x+3,y+3,x+length-1,y+high-1);
drwfillbox(SET,fillcolor,x+4,y+4,x+length-2,y+high-2);
drwstr(s,x+length/2-8,y+high/2-16,2,2,BLACK);
}


/*箭头*/
void borrow(int x1,int x2,int y1,int y2,int col,int high)
{
 int ok;
 int xs,ys,xe,ye;
 
 ok=TRUE;
 drwfillbox(SET,col,x1,y1,x2,y2);
 xs=x2;
 ys=y1-high;
 xe=xs;
 ye=y2+high;
 while (ok)
 {
  drwline(SET,col,xs,ys,xs,ye);  
  xs=xs+1;
  ys=ys+1;
  ye=ye-1;
  if (ys==ye)
     {drwpoint(SET,col,xs,ys);  
      ok=FALSE;
     }
}   
}

⌨️ 快捷键说明

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