📄 t9.c
字号:
n=n+16;
}
/* 16*5=80点 */
if(n>80)
{
m=0;
n=0;
bar(105,155,536,255);
}
/* printf("n=%d,",n); */
}
}
/*-------------------------------------------------------------------------------------*/
/* void enter_r(unsigned int key) */
/* */
/* ---输入法切换子函数--- */
/* ---入口:key[0]的首次输入值;返回:无--- */
/* ---功能:按下“r”会更改当前输入法,按q,w会上下翻页操作--- */
/*-------------------------------------------------------------------------------------*/
void enter_r(unsigned int key)
{
unsigned int page=0,flag_6=0;
unsigned int s1=0,s2=8;
do
{
if(v_s==1)
{
bar(101,102,174,119); /*清空拼音输入框*/
st_display(en_s); /*==调用 输入切换显示;显示 “英文小写:子函数*/
bar(180,100,536,145);
show_other_clue(1,s1,s2); /*==调用 其它输入提示子函数 ==*/
}
if(v_s==2)
{
bar(101,102,174,119); /*清空拼音输入框*/
st_display(en_l); /*显示 “英文大写:*/
bar(180,100,536,145);
show_other_clue(2,s1,s2);
}
if(v_s==3)
{
bar(101,102,174,119); /*清空拼音输入框*/
st_display(num_e); /*显示 “数字输入:*/
bar(180,100,536,145);
show_other_clue(3,s1,s2); /*==调用 数字输入提示子函数 ==*/
}
if(v_s==4)
{
bar(101,102,174,119); /*清空拼音输入框*/
st_display(sign_e); /*显示 “符号输入:*/
bar(180,100,536,145);
show_other_clue(4,s1,s2);
}
if(key==0) /*按确认键*/
{
/* cancel_data2(); */ /*==调用 清除退格线子函数*/
bar(101,102,174,119); /*清空拼音输入框*/
st_display(py); /*==调用 显示“拼音输入:”子函数==*/
bar(180,100,536,145);
v_s=1;
break;
}
key=check_return(getch());
if(key==12)
{
s1=0; /*恢复原状态*/
s2=8;
flag_6=0;
v_s=v_s+1;
if(v_s>4)v_s=1;
key=20;
}
if(key==11&&flag_6==0) /*下翻页*/
{
s1=s1+8;
page=page+1;
if(v_s==1&&s1>16){s2=2;flag_6=1;}
if(v_s==2&&s1>16){s2=2;flag_6=1;}
if(v_s==3&&s1>0){s2=2;flag_6=1;}
if(v_s==4&&s1>16){s2=4;flag_6=1;}
}
if(key==10&&page!=0) /*上翻页*/
{
if(v_s==1&&s1>16){s2=8;flag_6=0;}
if(v_s==2&&s1>16){s2=8;flag_6=0;}
if(v_s==3&&s1>0){s2=8;flag_6=0;}
if(v_s==4&&s1>16){s2=8;flag_6=0;}
s1=s1-8;
page=page-1;
}
get_other_data(key,v_s,s1);
if(key==9)
{
cancel_data(); /*==调用 清除退格线子函数*/
output_other(105+m,155+n,28,9,4);
cancel_data1(); /*==调用 消除退格线*/
}
}while(1);
}
/*--------------------------------------------------------------------------------------*/
/* void input_work() */
/* ---键盘数据处理子函数--- */
/* ---入口:无;返回:无--- */
/* ---功能:处理输入的数据字符等--- */
/*--------------------------------------------------------------------------------------*/
void input_work()
{
int v1,key[7],i,num_p,k,flag_1=0,flag_2=0,j;
int v_1;
unsigned char *p3,num_6,num_7,temp_d[36];
for(;;)
{
for(i=0;i<7;i++) /*最多拼音字母为6个*/
{
if(flag_1==0)
{
do
{
key[0]=check_return(getch()); /*调用check_key() 取首次键值,若首次值不等以下值则循环等待*/
if(key[0]==9)
{
cancel_data(); /*==调用 退格子函数*/
output_other(105+m,155+n,28,9,4); /*划条清除线 */
cancel_data1(); /*==调用 消除退格线*/
}
if(key[0]==12) /*输入法切换键时候,输入拼音前和输完拼音后才可以切换*/
{
cancel_data2(); /*==调用 清除退格线子函数*/
enter_r(key[0]); /*==调用 输入法切换子函数*/
key[0]=20;
i=0;
}
}while(key[0]!=1&&key[0]!=2&&key[0]!=3&&key[0]!=4&&key[0]!=5&&key[0]!=6&&key[0]!=7&&key[0]!=8);
}
if(flag_1==1)
{
do
{
key[i]=check_return(getch()); /*调用check_key() 取首次键值,若首次值不等以下值则循环等待*/
}while(key[i]!=1&&key[i]!=2&&key[i]!=3&&key[i]!=4&&key[i]!=5&&key[i]!=6&&key[i]!=7&&key[i]!=8&&key[i]!=9&&key[i]!=0);
}
flag_1=1; /*flag_1作用:对第一次输入的键值限定*/
cancel_data2(); /*==调用 清除退格线子函数*/
if(key[i]==9) /*取消当前 拼音,以便重新输入拼音*/
{
bar(180,100,536,145); /*清空字母文字提示框*/
flag_1=0;
i=0; /*跳出for(i=0;i<7;i++)循环*/
break;
}
if(key[i]==0) /*按确认键*/
{
flag_1=0;
flag_2=1;
v_1=temp_data[1];
num_6=*p3;
p3++;
num_7=*p3;
/* printf("num_6=%d,",num_6);
printf("num_7=%d,",num_7); */
for(j=0;j<temp_data[0];j++)
{
temp_d[j]=hzk_bin[j+v_1]; /*将当前显示的拼音字模代码存好,以便将来选择时候使用*/
/* printf("%d=%d,",j,temp_d[j]); */
}
break;
}
if(i==0) /*第一个键值*/
{
for(k=0;k<224;k++)
{
if(hzk_index[k][0]==key[0])
{
p3=show_hz_clue(i,k); /*==调用 字符数字提示子函数子函数==*/
break;
}
}
}
if(i==1) /*第二个键值*/
{
for(k=0;k<224;k++)
{
if(hzk_index[k][0]==key[0]&&hzk_index[k][1]==key[1])
{
p3=show_hz_clue(i,k);
break;
}
}
}
if(i==2) /*第三个键值*/
{
for(k=0;k<224;k++)
{
if(hzk_index[k][0]==key[0]&&hzk_index[k][1]==key[1]&&hzk_index[k][2]==key[2])
{
p3=show_hz_clue(i,k);
break;
}
}
}
if(i==3) /*第四个键值*/
{
for(k=0;k<224;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])
{
p3=show_hz_clue(i,k);
break;
}
}
}
if(i==4) /*第五个键值*/
{
for(k=0;k<224;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])
{
p3=show_hz_clue(i,k);
break;
}
}
}
if(i==5) /*第六个键值*/
{
for(k=0;k<224;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])
{
p3=show_hz_clue(i,k);
break;
}
}
}
while(i>=6) /*避免没有输入确定键,而导致乱码*/
{
error_display();
if(check_return(getch())==9)
{
for(num_p=0;num_p<21;num_p++)
{
output_other(num_p*8+200,50,29,0,4);
}
bar(180,100,536,145); /*清空字母文字提示框*/
flag_1=0; /*跳出for(i=0;i<7;i++)循环*/
flag_2=0;
break;
}
}
}
if(flag_2==1)
{
get_hz_index(num_6,num_7,temp_d); /*==调用 取输入框中汉字子函数 */
flag_2=0;
flag_1=0;
i=0;
}
}
}
/*--------------------------------------------------------------------------------------*/
/* void main() */
/* ---程序主函数--- */
/* ---功能:模拟手机进行T9输入法--- */
/*--------------------------------------------------------------------------------------*/
void main()
{
int *p1;
initial(); /*==调用 初始化图形和边框子函数 ==*/
logo_display(); /*==调用 显示logo子函数 ==*/
st_display(py); /*==调用 显示“拼音输入:”子函数==*/
input_work(); /*==调用 键盘数据处理子函数 ==*/
getch();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -