请教ITextCtl用法,谁有简单示例?100分

tsingien 2010-01-31 02:54:08
我的做法是:

1. 结构体中声明一个变量: ITextCtl *m_pText;

2. 在appname_InitAppData中初始化:
if(ISHELL_CreateInstance(pMe->a.m_pIShell, AEECLSID_TEXTCTL, (void**)(&pMe->m_pText)) != SUCCESS ){}

3. 在程序启动时设置属性:
rc.x = 10;
rc.y = 10;
rc.dx = 150;
rc.dy = 30;
ITEXTCTL_SetRect(pMe->m_pText, &rc);
ITEXTCTL_SetProperties(pMe->m_pText, TP_FIXSETRECT);
ITEXTCTL_SetMaxSize(pMe->m_pText, 20);
//输入模式设置为数字、字母、拼音
ITEXTCTL_SetInputMode(pMe->m_pText, AEE_TM_CURRENT | AEE_TM_NUMBERS | AEE_TM_PINYIN | AEE_TM_LETTERS);


4. 在显示的时候调用:
ITEXTCTL_SetActive(pMe->m_pText, TRUE);
ITEXTCTL_Redraw(pMe->m_pText);


5. 在appname_HandleEvent函数中
case EVT_KEY:
// Add your code here...
if( pMe->m_pKeyword && ITEXTCTL_IsActive(pMe->m_pKeyword) == TRUE)
{
if (ITEXTCTL_HandleEvent( pMe->m_pKeyword, eCode, wParam, dwParam ))
{
return TRUE;
}
}
KeyEvent_Handle(pMe, wParam);
return(TRUE);

6. 在退出程序的时候释放:
if(pMe->m_pText!= NULL)
{
ITEXTCTL_Release(pMe->m_pText);
pMe->m_pText= NULL;
}

运行没有出错,不过输入的任何东西都显示不出来,在文本输入框的位置显示一个黑条,每次输入一些新的字符后,黑条变短一些。不知道是什么原因。

欢迎指点或给出一个可运行、简单到只有一个输入框的例子。谢谢!
...全文
1143 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
tsingien 2010-02-01
  • 打赏
  • 举报
回复
问题找到了,因为我在显示字体的时候设置的字体的颜色,和BREW本身控件的显示冲突了。不知道为什么控件的显示会跟用户对字体的设置有关。
我的流程是:
1. 设置字体
2. 显示内容
3. 恢复字体

在我第一步和第三步之间,系统可能显示了控件,导致使用了我设置后的字体。因为输入框的字体在闪烁,所以系统控件的显示可能在第一步和第三步之外的位置调用了,这个可能系统通过是多进程/线程显示的。
xia56108430 2010-02-01
  • 打赏
  • 举报
回复
很多不同牌子的手机输入法流程是不一样的,
他们的调用流程你要问你手机厂商,

有些手机每次HANDLEEVENT都要ITEXTCLT_REDRAW!

1,134

社区成员

发帖
与我相关
我的任务
社区描述
本论坛以AI、WoS 、XR、IoT、Auto、生成式AI等核心板块组成,为开发者提供便捷及高效的学习和交流平台。 高通开发者专区主页:https://qualcomm.csdn.net/
人工智能物联网机器学习 技术论坛(原bbs) 北京·东城区
社区管理员
  • csdnsqst0050
  • chipseeker
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧