?? 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 + -