管理员
  
- 积分
- 165540
- 金钱
- 165540
- 注册时间
- 2010-12-1
- 在线时间
- 2117 小时
|
发表于 2013-11-9 23:32:02
|
显示全部楼层
这个很简单吧,只需要把我原来的代码做修改就可以了。
主要改下面这个函数,及相关处理的修改:
//创建输入法控件
//整个区域:240宽,134高.
//主按钮:46*35.
//x间隔:2,2,2,3,1
//y间隔:2,2,2,1
//边按钮:46*21,最后一个22.
//文字选框:29*22,最后一个28.
//left,top:起始坐标.
//mode:模式
//[7:5]:0,保留
//[4:3] 左侧纵向按钮状态)0,输入法切换状态;1,汉字输入状态;2,标点符号状态;
//[2:0]:0,拼音;1,123;2,abc;3,ABC,4,手写.
_t9_obj * t9_creat(u16 left,u16 top,u8 mode)
{
u8 i,t;
u16 temp;
u8 sta=0;
_t9_obj * t9_crt;
t9_crt=(_t9_obj*)gui_memin_malloc(sizeof(_t9_obj));//分配内存
if(t9_crt==NULL)return NULL;//内存分配不够.
t=1;
temp=23;//y方向的偏移
for(i=0;i<12;i++)
{
t9_crt->mbtn=btn_creat(left+48*t,top+temp,46,35,i,0X02);
if(t==4)
{
t=1;
temp+=37;//向下偏移37
}else t++;
if(t9_crt->mbtn==NULL)
{
sta=1;//标记有内存申请失败.
break;
}
t9_crt->mbtn->caption=(u8*)t9_mbtnstr_tbl[0];
t9_crt->mbtn->bcfucolor=WHITE;//松开时为白色
t9_crt->mbtn->bcfdcolor=BLACK;//按下时为黑色
}
temp=0;
for(i=0;i<8;i++)
{
t9_crt->hbtn=btn_creat(left+30*i+1,top+1,29-temp,20,i+12,0X04);//文字按钮,背景色单一
t9_crt->hbtn->bcfucolor=BLACK;//松开时为黑色
t9_crt->hbtn->bcfdcolor=WHITE;//按下时为白色
if(i==6)temp=1;//最后一个尺寸为28
if(t9_crt->hbtn==NULL)
{
sta=1;//标记有内存申请失败.
break;
}
}
for(i=0;i<5;i++)
{
t9_crt->vbtn=btn_creat(left+1,top+i*22+23,44,21,i+20,0X04);//文字按钮,背景色单一
if(t9_crt->vbtn==NULL)
{
sta=1;//标记有内存申请失败.
break;
}
t9_crt->vbtn->caption=(u8*)t9_vbtnstr_tbl;
t9_crt->vbtn->font=12;//为12字体
t9_crt->vbtn->bcfucolor=0XA535;//松开时为灰白色
t9_crt->vbtn->bcfdcolor=0X0000;//按下时为黑色
t9_crt->vbtn->bkctbl[0]=T9_PANEL_BKC;//松开时为输入法的背景
t9_crt->vbtn->bkctbl[1]=0XFFFF;//按下时背景为白色
}
if(sta)//未申请成功
{
t9_delete(t9_crt);
return NULL;
}
t9_crt->top=top;
t9_crt->left=left;
t9_crt->width=240;
t9_crt->height=134;
t9_crt->mode=mode;
t9_crt->sta=0;
t9_crt->disstr=NULL;
t9_crt->dispagenum=0;
t9_crt->dispagecur=0;
t9_crt->instr[0]=NULL;
t9_crt->outstr[0]=NULL;
t9_set_inputtype(t9_crt,0);//设置为拼音输入法
return t9_crt;
} |
|