|
现在我这边有个功能
菜单显示的是短信编辑框中编辑的内容,可滚动显示.
现在有一个问题就是 当我进入短信编辑界面输入字符的时候,如果我输入的全部都是字母和数字,并且输入字符数目等于最大值,然后点击确定,菜单显示还是正确的,可以显示出刚才编辑的内容,等再次进入编辑界面时里面被清空了.但是如果在刚开始输入的时候输入任何一个汉字就不会出现这个问题.
输入完成点击确定后会执行一段代码
UCS2strcpy((PS8)pEms->textbuffer,smscontent);
从菜单进入编辑框进行内容编辑的时候会执行代码
SetEmsDcs(MMI_UCS_DCS); /*不太记得函数和枚举的写法了.....*/
Addstring(&pEms,smscontent,(U16)mmi_ucs2strlen((PS8)smscontent),NULL);
可能中间有些函数写得不对...代码不在这台电脑...
我分析原因是 当输入的全部都是字母和数字的时候 ,smscontent其实是ascii码的,这个时候 UCS2strcpy以及后面把DCS设置成UCS和mmi_ucs2strlen都是不合适的.所以只要输入了汉字就正确了.
然后我进行了一下判断.
把第一个代码加了
在输入字串全部是ascii码的时候 memcpy((PS8)pEms->textbuffer,smscontent,sizeof(smscontent));
第二段在输入字串全部是ascii码的时候 把DCS设成default,Addstring((&pEms,smscontent,(U16)strlen((PS8)smscontent),NULL);
这样改了以后 再次进入编辑框的时候 内容是之前输入的第一个字符.........
对编码这块比较生......请高手指教下~~ |
|