最初设想就是这样,其中1用来输入标点,2-9输入拼音,0用来输入数字,back用来删除一个错误的拼音,而clear用来清除整个拼音,<<>>分别向左右移动,OK将汉字输出
下拉框用来选择拼音或者英文的输出
下面的代码主要就是根据按键切换字符的,用timer来判断,600ms内没有继续按键则输出
void CT9seDlg::switchpy(int buttons,int keyflag)
//选择按键产生的拼音 button为按键号,keyflag是第几次被按下
{
switch (buttons)
{
case 2:
{
switch(keyflag)
{
case 0:
input_py_val[pys]= 'a';
break;
case 1:
input_py_val[pys]='b';
break;
case 2:
{
input_py_val[pys]='c';
keyFlag=-1;
}
}
break;
}
case 3:
{
switch(keyflag)
{
case 0:
input_py_val[pys]='d';
break;
case 1:
input_py_val[pys]='e';
break;
case 2:
{
input_py_val[pys]='f';
keyFlag=-1;
}
}
break;
}
case 4:
{
switch(keyflag)
{
case 0:
input_py_val[pys]='g';
break;
case 1:
input_py_val[pys]='h';
break;
case 2:
{
input_py_val[pys]='i';
keyFlag=-1;
}
}
break;
}
case 5:
{
switch(keyflag)
{
case 0:
input_py_val[pys]= 'j';
break;
case 1:
input_py_val[pys]='k';
break;
case 2:
{
input_py_val[pys]='l';
keyFlag=-1;
}
}
break;
}
case 6:
{
switch(keyflag)
{
case 0:
input_py_val[pys]= 'm';
break;
case 1:
input_py_val[pys]='n';
break;
case 2:
{
input_py_val[pys]='o';
keyFlag=-1;
}
}
break;
}
case 7:
{
switch(keyflag)
{
case 0:
input_py_val[pys]='p';
break;
case 1:
input_py_val[pys]='q';
break;
case 2:
input_py_val[pys]='r';
break;
case 3:
{
input_py_val[pys]='s';
keyFlag=-1;
}
}
break;
}
case 8:
{
switch(keyflag)
{
case 0:
input_py_val[pys]= 't';
break;
case 1:
input_py_val[pys]='u';
break;
case 2:
{
input_py_val[pys]='v';
keyFlag=-1;
}
}
break;
}
case 9:
{
switch(keyflag)
{
case 0:
input_py_val[pys]='w';
break;
case 1:
input_py_val[pys]='x';
break;
case 2:
input_py_val[pys]='y';
break;
case 3:
{
input_py_val[pys]='z';
keyFlag=-1;
}
}
break;
}
}
}