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

📄 put.c

📁 是一个比较好的手机输入法源码
💻 C
📖 第 1 页 / 共 2 页
字号:
                      kk=304;
                      jj=jj-16;
                      }
                      if(jj<=120)
                      {
                      jj=120;
                      }
                 goto h1;
                 case 0 :
                 s=check_key(getch());
                 goto outhz;    /*汉字输入确认*/
                 case 10:i=i-2;if(i<0){i=0;goto top;}
                 break;
                 case 11:
                 case 20:
                 goto again;
                 }
                 if(i==0)
                 {              /*若为第一次读键*/
                    for(k=0;k<402;k++)
                    {
                          if(hzk_index[k][0]==key[0])    /*搜索索引表*/
                          {
                          ok=k;
                          goto here;
                          }
                    }
                 }
                 if(i==1)
                 {               /*若为第二次读键*/
                 mu=0;
                     for(k=0;k<402;k++)
                     {
                         if(hzk_index[k][0]==key[0]&&hzk_index[k][1]==key[1])   /*搜索索引表*/
                         {        
                         mu=1;
                         ok=k;
                         goto here;
                         }
                     }
                     if(mu==0){sm[i]=ok;goto again;}
                }

                if(i==2)
                {              /*若为第三次读键*/
                mu=0;
                     for(k=0;k<402;k++)
                     {
                          if(hzk_index[k][0]==key[0]&&hzk_index[k][1]==key[1]&&hzk_index[k][2]==key[2])/*搜索索引表*/
                          {   
                          ok=k;
                          mu=1;
                          goto here;
                          }
                     }
                     if(mu==0){sm[i]=ok;goto again;}
                }

                if(i==3)
                {            /*若为第四次读键*/
                mu=0;
                      for(k=0;k<402;k++)
                      {
                            if(hzk_index[k][0]==key[0]&&hzk_index[k][1]==key[1]&&hzk_index[k][2]==key[2]&&hzk_index[k][3]==key[3])
                            {
                            ok=k;
                            mu=1;
                            goto here;
                            }
                      }
                      if(mu==0){sm[i]=ok;goto again;}
                }

                if(i==4)
                {            /*若为第五次读键*/
                mu=0;
                      for(k=0;k<402;k++)
                      {
                            if(hzk_index[k][0]==key[0]&&hzk_index[k][1]==key[1]&&hzk_index[k][2]==key[2]&&hzk_index[k][3]==key[3]&&hzk_index[k][4]==key[4])
                            {
                            mu=1;
                            ok=k;
                            goto here;
                            }
                      }
                      if(mu==0){sm[i]=ok;goto again;}
                }
                
                if(i==5)
                {           /*若为第六次读键*/
                mu=0;
                      for(k=0;k<402;k++)
                      {
                            if(hzk_index[k][0]==key[0]&&hzk_index[k][1]==key[1]&&hzk_index[k][2]==key[2]&&hzk_index[k][3]==key[3]&&hzk_index[k][4]==key[4]&&hzk_index[k][5]==key[5])
                            {
                            mu=1;
                            ok=k;
                            goto here;
                            }
                      }
                      if(mu==0){sm[i]=ok;goto again;}
                }

                here:                /*显示对应键盘字母所有的可能组合*/
                m=hzk_index[k][6];     /*m为所有可能数,它位于索引表每行第7列*/
                firqmh=hzk_index[k][7];
                firqml=hzk_index[k][8];
                bar(0,50,300,100);
                pydisp();
                bar(100,50,200,100);
                       for(ks=0;ks<9;ks++)
                       {
                       putnum(ks*32,70,ks+1,2);
                       puthz((ks*2+1)*16,70,firqmh,firqml+ks,2);
                       }
                       for(n=0;n<m;n++)
                       {
                       putnum(10*8+n*64,50,n+1,2);
                            for(kkk=1;kkk<=i+1;kkk++)
                            {
                             a[n][kkk]=hzk_index[k][18+(n*(i+1)+kkk)];
                             putzimus(11*8+n*64+kkk*8,50,a[n][kkk]-1,2);
                            }
                       }

          } 



          outhz:               /*用户选择组合中所有可能中的一种*/
          nn=++nn ;
               if(mu==1)
               {
               qmh=hzk_index[k][7+(s-1)*2];
               qml=hzk_index[k][7+(s-1)*2+1];
               }
               if(mu==0)
               {
               qmh=hzk_index[sm[i]][7+(s-1)*2];
               qml=hzk_index[sm[i]][7+(s-1)*2+1];
               }
          fydisp:
          bar(0,50,500,100);
          pydisp();
               for(i=0;i<9;i++)
               {
               putnum(i*32,70,i+1,2);
               puthz((i*2+1)*16,70,qmh,qml+i+(9*page),2); 
               }
          endtop:
          end=check_key(getch());
          switch(end)
               {
                case 11:page=page+1;goto fydisp;
                case 10:page=page-1;goto fydisp;
                case 20:goto endtop;
                case 12:goto endtop;
                case 13:kd++;goto top;
                default:
                break;
               }
          puthz(kk,jj,qmh,qml+end+page*9-1,2);
          kk=kk+16;
               if(kk>300)
               {
               kk=0;
               jj=jj+16;
               }
         }
    }



    while(kd==1)       /*字母输入状态*/
    {
     top1:
     bar(0,50,500,100);
     bengdisp();
         for(;;)
         {
              while(d)
              {                   /*大写字母输入*/
              top2:
              key1=check_key(getch());     /*判断键值*/
                     switch(key1)
                     {               /*判断键状态*/
                      case 9:kk=kk+8;goto top2;
                      case 13:kd++;goto  top;
                      case 0: d=!d;goto top1;     /*大小写切换*/
                      case 20:
                      case 11:
                      case 10: goto top2;
                      case 12:
                      kk=kk-8;
                      bar(kk,jj,kk+8,jj+16);
                             if(kk<0)
                             {
                             kk=304;
                             jj=jj-16;
                             }
                             if(jj<=120)
                             {
                             jj=120;
                             }
                             goto  top2;
                             }
                      qmh=key1*3-3;
                      kp=key1;
                      bar(0,50,500,100);
                      bengdisp();
                             for(mm=0;mm<3;mm++)
                             {
                             putzimub((mm+15)*8,50,qmh+mm,3);
                             }
                      key2=check_key(getch());
                      switch(key2)
                             {
                              case 13:kd++;goto top;
                              case 0:d=!d;goto top1;
                             }
                      goto outen;
                      }

             while(!d)
             {           /*小写字母输入*/
             top3:
             bar(0,50,500,100);
             sengdisp();
             key1=check_key(getch());     /*判断键值*/
             switch(key1)
                    {               /*判断键状态*/
                    case 9:kk=kk+8;goto top3;
                    case 13:kd++;goto  top;
                    case 0: d=!d;goto top1;     /*大小写切换*/
                    case 10:
                    case 11:
                    case 20:goto top3;
                    case 12:
                    kk=kk-8;
                    bar(kk,jj,kk+8,jj+16);
                          if(kk<0)
                          {
                          kk=304;
                          jj=jj-16;
                          }
                          if(jj<=120)
                          {
                          jj=120;
                          }
                    goto top3;
                    }
              qmh=key1*3-3;
              kp=key1;
              bar(0,50,500,100);
              sengdisp();
                    for(mm=0;mm<3;mm++)
                    {
                    putzimus((mm+15)*8,50,qmh+mm,3);
                    }
              key2=check_key(getch());
              switch(key2)
                    {
                    case 13:kd++;goto  top;
                    case 0: d=!d;goto top1;
                    case 9:kk=kk+8;goto top;
                    case 12:
                    kk=kk-8;
                    bar(kk,jj,kk+8,jj+16);
                          if(kk<0)
                          {
                          kk=304;
                          jj=jj-16;
                          }
                          if(jj<=120)
                          {
                          jj=120;
                          }
                          goto top3;
                    }
             goto outen;
             }
        }
        outen:               /*从显示的三个字母中选出所需的字母*/
             if(d)
             {
             ii=kp*3-4+key2;
             putzimub(kk,jj,ii,3);
             kk=kk+8;
                     if(kk>288)
                     {
                     kk=0;
                     jj=jj+16;
                     }
             }
             if(!d)
             {
             ii=kp*3-4+key2;
             putzimus(kk,jj,ii,3);
             kk=kk+8;
                     if(kk>288)
                     {
                     kk=0;
                     jj=jj+16;
                     }
            }
      }

      while(kd==2)           /*数字输入状态*/
      {
      bar(0,50,500,100);
      numdisp();
      top4:
            for(;;)
            {
            key1=check_key(getch());           /*判断键值*/
            switch(key1)
                   {
                   case 13:kd++;goto  top;
                   case 11:
                   case 10:
                   case 20:goto top4;
                   case 12:kk=kk-8;
                   bar(kk,jj,kk+8,jj+16);
                        if(kk<0)
                        {
                        kk=304;
                        jj=jj-16;
                        }
                        if(jj<=120)
                        { 
                        jj=120;
                        }
                  goto top4;
                  }
            putnum(kk,jj,key1,3);
            kk=kk+8;
                  if(kk>288)
                  {
                  kk=0;
                  jj=jj+16;
                  }
           }
     }

     while(kd==3)         /*字符输入状态*/
     {
     zifudisp:
     bar(0,50,500,100);
     zifudisp();
     bar(100,50,200,100);
           for(ks=0;ks<9;ks++)
           {
           putnum(ks*32,70,ks+1,2);
           putzifu((ks*2+1)*16,70,ks+9*page1,2);
           }
     endtop1:
     end1=check_key(getch());
     switch(end1)
           {
           case 11:page1=page1+1;if(page1>=2){page1=2;}goto zifudisp;
           case 10:page1=page1-1;if(page1<=0){page1=0;}goto zifudisp;
           case 20:goto endtop1;
           case 13:kd++;goto top;
           case 12:
           kk=kk-8;
           bar(kk,jj,kk+8,jj+16);
                  if(kk<0)
                  {
                  kk=304;
                  jj=jj-16;
                  }
                  if(jj<=120)
                  {
                  jj=120;
                  }
           goto endtop1;
           }
      putzifu(kk,jj,end1+page1*9-1,2);
      kk=kk+8;
           if(kk>300)
           {
           kk=0;
           jj=jj+16;
           }
      }
}

⌨️ 快捷键说明

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