brew中创建itextctl问题

haichunzhao 2007-07-26 08:18:41
我在brew中创建多个itextctl控件,但是只显示其中一个的标题,而且怎样设焦点在每个控件上?
...全文
1061 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
sxcnfly 2008-05-25
  • 打赏
  • 举报
回复
这个原因应该是你后面那个textfield把前面那个textfield给遮住了,你需要根据实际屏幕设置正确的rect值为两个textfield,比如说第一个textfield,rc.x = 10; rc.y = 10; rc.dx = 100; rc.dy = 60; ITEXTCTL_SetRect(pt, &rc); 第二个textfield,rc.x = 10; rc.y = 80; rc.dx = 100; rc.dy = 60; ITEXTCTL_SetRect(pt, &rc); 这些估计值我是给你打比方的,具体值需要根据你的屏幕计算得到的。
cancer0713 2008-05-24
  • 打赏
  • 举报
回复
急求!!!!!!!!
为什么我只能在屏幕上显示一个ITEXTCTL???而且显示的是在代码中后出现的那个ITEXTCTL!!请问这是什么原因?该怎么解决啊?
cancer0713 2008-05-23
  • 打赏
  • 举报
回复
谢谢。我用你的方法很快就创建好了一个ITEXTCTL。但是为什么我的屏幕上如果显示这个输入框的话,其他东西都显示不出来了;而如果想把其他东西显示出来的话,就必须注释掉显示ITEXTCTL。是由于屏幕尺寸设置的问题?还是其他问题啊?
sxcnfly 2008-05-22
  • 打赏
  • 举报
回复
给你一段参考代码吧,你只要用以下标红色的代码就可以成功创建一个textctl实例了。
static boolean MShop_DisplayTextInputForm(MShop * pme, boolean bSearch)
{
ITextCtl * pt;
AEERect rc, rcm;

// Get Text Control Pointer
pt = pme->m_pText;

// Create text control if necessary
if(!pt) {
if (ISHELL_CreateInstance(pme->a.m_pIShell, AEECLSID_TEXTCTL,(void **)(&pt)) != AEE_SUCCESS)
return FALSE;
else
{
// Reset Text Control size so that when we assign some other size, it doesn't
// erase anything
SETAEERECT(&rc, 0, 0, 0, 0);
ITEXTCTL_SetRect(pt, &rc);
}
}

pme->m_pText = pt;

// Set TextControl buffer size and title
MShop_SetTitle(pme, APPMGRLS_RES_FILE,(uint16)(bSearch ? IDS_SEARCH_TITLE : IDS_CREDITBACK_TITLE),NULL);
ITEXTCTL_SetMaxSize(pt, MAX_STR_CHARS);

if (bSearch)
IMENUCTL_AddItem(pme->m_pSK, APPMGRLS_RES_FILE, IDS_ANY, IDC_SEARCH_ANY, NULL, NULL);
else
// Setup softkey menu for this text control with ok/mode options
IMENUCTL_AddItem(pme->m_pSK, APPMGRLS_RES_FILE, IDC_OK, IDC_MSHOP_CREDITBACK, NULL, NULL);

// Get softkey size
IMENUCTL_GetRect(pme->m_pSK, &rcm);

if (bSearch)
// Set Text Control Properties
ITEXTCTL_SetProperties(pt, TP_FRAME|TP_MULTILINE|TP_T9_MODE);
else
// Set Text Control Properties
ITEXTCTL_SetProperties(pt, TP_FRAME|TP_MULTILINE);

// Set Text Control Size
SETAEERECT(&rc, MARGIN, pme->m_rcMShopLogo.dy + MARGIN, pme->m_cx - 2*MARGIN, pme->m_cyFont*((pme->m_cy - pme->m_rcMShopLogo.dy - rcm.dy - MARGIN)/pme->m_cyFont));
ITEXTCTL_SetRect(pt, &rc);
// Set Softkey to Text Control
ITEXTCTL_SetSoftKeyMenu(pme->m_pText, pme->m_pSK);

// Redraw Softkey
IMENUCTL_Redraw(pme->m_pSK);

// If this isn't search, let's make numbers default
if (!bSearch)
ITEXTCTL_SetInputMode(pt, AEE_TM_NUMBERS);

// Make Text Control Active
ITEXTCTL_SetActive(pt, TRUE);

// Set repaint flag false to prevent TextControl from updating Title and Banner
// for every event
pme->m_bRepaint = FALSE;

return(TRUE);
}
cancer0713 2008-05-22
  • 打赏
  • 举报
回复
我也在找如何创建多个ITEXTCTL的例子啊,哪位高手能给个小程序或者代码,参考参考啊!
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
我也想知道,正在找這方面的資料~~~~~
knowledge_Is_Life 2008-05-01
  • 打赏
  • 举报
回复
好像没那么简单,呵呵.
sunky_song 2007-08-13
  • 打赏
  • 举报
回复
多个itextctl控件,可以定义一个数组,根据上下左右键自己记录哪一个itextctl应该获得焦点。应该是很简单的,我写了一个测试程序。
catmin701 2007-07-27
  • 打赏
  • 举报
回复
调用itextctl-setactve()激活itextctl控件就可以看到焦点了。

1,012

社区成员

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

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