⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 put.c

📁 是一个比较好的手机输入法源码
💻 C
📖 第 1 页 / 共 2 页
字号:
/*-------------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------------*/
/*程序设计:张进*/
/*最后改动:2001.06.20*/
/*-------------------------------------------------------------------------------*/
/*-------------------------------------------------------------------------------*/
#include<graphics.h>
#include<io.h>
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<index.c>

headdisp(){
unsigned int  gst[25][14]=
{
/*GstBitMap:             db 25,14*/
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x1a,0xaa,0xa8,0x0,0x0,0x8,0x0,0x0,
0x1,0xaa,0xaa,0x2,0xaa,0xac,0x15,0x55,0x5c,0x0,0x3,0x0,0x0,0x0,
0x5,0x55,0x55,0x5,0x55,0x56,0x2a,0xaa,0xac,0x0,0x20,0x0,0x0,0x0,
0xa,0xaa,0xab,0xa,0xaa,0xab,0x15,0x55,0x5e,0x0,0x50,0x0,0x0,0x0,
0x5,0x5d,0xd5,0x95,0x7f,0xd5,0x3f,0xaf,0xfc,0x4,0x0,0x4,0x0,0x0,
0xa,0xff,0xeb,0x8a,0xff,0xeb,0x3f,0xdf,0xfc,0xb,0x0,0xc8,0x0,0x0,
0x15,0xff,0xf5,0xd5,0xff,0xdf,0xf,0xaf,0xfc,0x25,0x8,0x80,0x0,0x0,
0xa,0xaa,0xbf,0x8a,0xe0,0x1f,0x0,0xae,0x0,0xd4,0x14,0x0,0x0,0x0,
0x15,0xc0,0x1f,0x15,0x55,0x5f,0x0,0x5c,0x0,0xa9,0x48,0x0,0x0,0x0,
0x2b,0xcb,0x6b,0x8a,0xaa,0xa4,0x0,0xbc,0x1,0x50,0x80,0x44,0x0,0x0,
0x15,0xd5,0x97,0x95,0x55,0x54,0x1,0x5c,0x0,0xad,0x42,0x20,0x0,0x0,
0x2b,0x8a,0x6b,0xf,0xff,0xae,0x0,0xbc,0x0,0x52,0x35,0x0,0x0,0x0,
0x17,0x97,0x97,0x7,0xff,0xd6,0x1,0x58,0x0,0xc,0x4a,0x0,0x0,0x0,
0x2b,0x8f,0xef,0x2f,0xff,0xae,0x0,0xbc,0x0,0x16,0xb0,0x0,0x0,0x0,
0x57,0x8f,0x16,0x50,0x0,0x56,0x3,0x78,0x0,0xb,0x48,0x14,0x0,0x0,
0x2a,0xaa,0xdf,0x55,0x55,0x5e,0x2,0xb8,0x0,0xa,0x81,0x40,0x0,0x0,
0x55,0x55,0x6e,0x2a,0xaa,0xae,0x1,0x70,0x0,0x1,0x4c,0x80,0x0,0x0,
0x2a,0xaa,0x9e,0x55,0x55,0x5e,0x2,0xb8,0x0,0x2,0xab,0x0,0x0,0x0,
0x15,0x55,0x7e,0x2a,0xaa,0xbe,0x5,0x70,0x0,0x1,0x54,0x20,0x0,0x0,
0x1f,0xff,0xfc,0x1f,0xff,0xfc,0x3,0xf0,0x0,0x0,0x28,0x0,0x0,0x0,
0xf,0xff,0xf8,0x1f,0xff,0xf8,0x1,0xf0,0x0,0x0,0x50,0x0,0x0,0x0,
0x7,0xff,0xe0,0xf,0xff,0xf0,0x1,0xf0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
};

int x=0;
int y=0;
register m,n,i,ii,j,k=0;
     for(i=0;i<25;i++)
     {
        for(j=0;j<14;j++)
        {
            for(k=0;k<8;k++)
            {
                  if(((gst[i][j]>>(7-k))&0x1)!=NULL)
                  {
                   putpixel(x+8*j+k,y+i,GREEN);
                  }
            }
        }
     }
}



pydisp()             /*拼音状态显示*/
{
unsigned int py[5][2]= {38,20,         /*'拼'*/
		       50,84,         /*'音'*/
		       42,68,         /*'输'*/
		       40,75,         /*'入'*/
		       03,26,};       /*':'*/
int s1;
    for(s1=0;s1<5;s1++)
    {
     puthz(s1*16,50,py[s1][0],py[s1][1],4);
    }
}

sengdisp()           /*英文输入状态显示(小写)*/
{
unsigned int syw[7][2]={51,02,         /*'英'*/
			46,36,         /*'文'*/
			42,68,         /*'输'*/
			40,75,         /*'入'*/
			48,01,         /*'小'*/
			48,20,         /*'写'*/
			03,26,};       /*':'*/
int s1;
    for(s1=0;s1<7;s1++)
    {
    puthz(s1*16,50,syw[s1][0],syw[s1][1],4);
    }
}
bengdisp()            /*英文输入状态显示(大写)*/
{
unsigned int byw[7][2]={51,02,         /*'英'*/
			46,36,         /*'文'*/
			42,68,         /*'输'*/
			40,75,         /*'入'*/
			20,83,         /*'大'*/
			48,20,         /*'写'*/
			03,26,};       /*':'*/


int s1;
   for(s1=0;s1<7;s1++)
   {
   puthz(s1*16,50,byw[s1][0],byw[s1][1],4);
   }
}

numdisp()
{

unsigned int snum[5][2]={42,93,       /*'数'*/
			 55,54,       /*'字'*/
			 42,68,         /*'输'*/
			 40,75,         /*'入'*/
			 03,26,};       /*':'*/

int s1;
   for(s1=0;s1<5;s1++)
   {
   puthz(s1*16,50,snum[s1][0],snum[s1][1],4);
   }
}


zifudisp()
{
unsigned int zifu[5][2]={
                       55,54,       /*'字'*/
		       23,91,       /*'符'*/
                       42,68,       /*'输'*/
                       40,75,       /*'入'*/
                       03,26,};     /*':'*/

int s1;
    for(s1=0;s1<5;s1++)
    {
    puthz(s1*16,50,zifu[s1][0],zifu[s1][1],4);
    }
}

headdisp2()
{
unsigned int head[4][2]={26,03,
                        45,69,
                        25,11,
                        43,30,
                            };
int s1;
   for(s1=0;s1<4;s1++)
   {
   puthz((s1+10)*16,0,head[s1][0],head[s1][1],4);
   }
}

puthz(int x,int y,int h,int l,int color)
{
FILE *fp;
int kk;
char buffer[32];
register m,n,i,ii,j,k=0;
unsigned char qh,wh;
unsigned long int offset;
   if((fp=fopen("hzk16","rb"))==NULL)
   {
   printf("can't open hzk16,please addit!");
   getch();
   closegraph();
   exit(0);
   }
offset=(94*(h-1)+(l-1))*32L;
fseek(fp,offset,SEEK_SET);
fread(buffer,32,1,fp);
    for(i=0;i<16;i++)
    {
      for(j=0;j<2;j++)
      {
         for(k=0;k<8;k++)
         {
             if(((buffer[i*2+j]>>(7-k))&0x1)!=NULL)
             {
             putpixel(x+8*j+k,y+i,color);
             }
         }
      }
    }
    if(x>512)
    {
    x=0;y=y+16;
    }
fclose(fp);
}


putnum(int x,int y,int dem,int color)
{
register m,n,i,ii,j,k=0;
   for(i=0;i<16;i++)
   {
       for(j=0;j<1;j++)
       {
           for(k=0;k<8;k++)
           {
                if(((num[dem][i+j]>>(7-k))&0x1)!=NULL)
                {
                putpixel(x+8*j+k,y+i,color);
                }
           }
       }
   }
}

putzimub(int x2,int y2,int dem2,int color2)
{
register m2,n2,i2,ii2,j2,k2=0;
     for(i2=0;i2<16;i2++)
     {
          for(j2=0;j2<1;j2++)
          {
               for(k2=0;k2<8;k2++)
               {
                    if(((beng[dem2][i2+j2]>>(7-k2))&0x1)!=NULL)
                    {
                     putpixel(x2+8*j2+k2,y2+i2,color2);
                    }
               }
          }
     }
}

putzimus(int x3,int y3,int dem3,int color3)
{
register m3,n3,i3,ii3,j3,k3=0;
    for(i3=0;i3<16;i3++)
    {
        for(j3=0;j3<1;j3++)
        {
             for(k3=0;k3<8;k3++)
             {
                if(((seng[dem3][i3+j3]>>(7-k3))&0x1)!=NULL)
                {
                putpixel(x3+8*j3+k3,y3+i3,color3);
                }
             }
        }
    }
}


putzifu(int x,int y,int dem,int color)
{
register m,n,i,ii,j,k=0;
     for(i=0;i<16;i++)
     {
         for(j=0;j<1;j++)
         {
             for(k=0;k<8;k++)
             {
                 if(((sig[dem][i+j]>>(7-k))&0x1)!=NULL)
                 {
                 putpixel(x+8*j+k,y+i,color);
                 }
             }
         }
     }
}





check_key( unsigned char k)  /*查看并确认键值*/
{
int c;
   switch(k)
           {
           case '1':c=1;
           break;
           case '2':c=2;
           break;
           case '3':c=3;
           break;
           case '4':c=4;
           break;
           case '5':c=5;
           break;
           case '6':c=6;
           break;
           case '7':c=7;
           break;
           case '8':c=8;
           break;
           case '9':c=9;
           break;
           case '0':c=0;
           break;
           case 'q':c=10;                       /*define F1*/
           break;
           case 'w':c=11;                       /*define F2*/
           break;
           case 'e':c=12;                       /*define F3*/
           break;
           case 'r':c=13;                       /*define F4*/
           break;
           case 'c':
           closegraph();
           exit(0);
           default:
           c=20;
           break;
           }
return(c);
}

main()
{
int firqmh,firqml;
int a[6][16];
int key[6],i,j,s,ii,k,m,kkk,kk=0,jj=120,n,nn=0;
int ks,mm,d=0,key1,key2,qmh,qml,ss,kp,kd=0,page=0,page1=0;
int driver=DETECT,mode;
int end;
int endd;
int mu;
int end1;
int sm[6];
int ok;
char kc;
initgraph(&driver,&mode,"");
setcolor(5);
headdisp();
headdisp2();
bar(0,50,500,100);
bar(0,100,500,220);
     for(i=0;i<5;i++)
     {
     line(0,100+i,500,100+i); 
     }
     for(i=0;i<5;i++)
     {
     line(0,220+i,500,220+i);
     }
     for(i=0;i<5;i++)
     {
     line(0,45+i,500,45+i);
     }
     for(i=0;i<2;i++)
     {
     line(i,45,i,220);
     }
     for(i=0;i<2;i++)
     {
     line(i+500,45,i+500,220);
     }
top:
     if(kd==4)
     {
     kd=0;
     }        /*键盘状态循环*/
     while(kd==0)         /*汉字输入状态*/
     {
     bar(0,50,500,100);
     pydisp();
     h1:
        for(;;)
        {
        page=0;
            for(i=0;i<7;i++)
            {
            again:
            key[i]=check_key(getch());    /*取键值*/
                 if(key[0]==0)
                 {
                  goto again;
                 }
                 switch(key[i])
                 {               /*判断键状态*/
                 case 9:kk=kk+8;goto h1;
                 case 13:kd++;goto  top;       /*是否是状态切换键*/
                 case 12:
                 kk=kk-8;
                 bar(kk,jj,kk+8,jj+16);
                      if(kk<0)
                      {

⌨️ 快捷键说明

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