请问,buiw,propcontainer下insert一个textwidget的问题。

qingqing2300 2010-05-11 03:09:37
我在propcontainer下insert一个textwidget。运行模拟器,每次按下手机模拟器按键时,都没有反应,不能键入字符。
不知道为何?

我还在textwidget中自定一个TextWdgHandleEvent函数。
但是也是接收不到按键事件。

请问该添加什么语句啊?

多谢帮忙!
...全文
1657 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qingqing2300 2010-05-12
  • 打赏
  • 举报
回复
我在网上的资料中看到关于 propcontainer

“在PropContainer中的widget可以被垂直放置也可以被水平放置。
如果被水平放置,widget的上下边缘将被设置成容器的高度和vice-versa。“

是这样吗? 是否可以修改以显示不同大小的widget在propcontainer中。

谢谢!
qingqing2300 2010-05-12
  • 打赏
  • 举报
回复
我在网上的资料中看到关于 propcontainer

“在PropContainer中的widget可以被垂直放置也可以被水平放置。
如果被水平放置,widget的上下边缘将被设置成容器的高度和vice-versa。“

是这样吗? 是否可以修改以显示不同大小的widget在propcontainer中。

谢谢!
qingqing2300 2010-05-12
  • 打赏
  • 举报
回复
wishife

嗯,
我把propcontainer 放到了viewport里了,在viewport事件处理里在添加一个propcontainer的处理函数。这样就能正常处理事件了。谢谢啊!

请问,propcontainer 我设置了WIDGET_KEEP_EXTENT,LAYOUT_HORZ显示,并向里边insert了两个widget,分别是imgwdg,textwidget,两个大小不同。结果显示出来textwidget的高跟imgwidget一样了。怎么设置函数才可以正常显示啊?谢谢关注!
wishifef 2010-05-11
  • 打赏
  • 举报
回复
/*===========================================================================

FILE: testimage.c
===========================================================================*/


#include "AEEModGen.h" // Module interface definitions
#include "AEEAppGen.h" // Applet interface definitions
#include "AEEShell.h" // Shell interface definitions
#include "AEERootForm.h"
#include "AEEForm.h"
#include "AEEImageStaticWidget.h"
#include "AEEPropContainer.h"
#include "AEETextWidget.h"
#include "testimage.bid"



typedef struct _testimage {
AEEApplet a ; // First element of this structure must be AEEApplet
AEEDeviceInfo DeviceInfo; // always have access to the hardware device information

// add your own variables here...

IShell *piShell;
IRootForm *rootForm;
IForm *mainForm;
IWidget *imageStaitc;

} testimage;

/*-------------------------------------------------------------------
Function Prototypes
-------------------------------------------------------------------*/
static boolean testimage_HandleEvent(testimage* pMe, AEEEvent eCode,
uint16 wParam, uint32 dwParam);
boolean testimage_InitAppData(testimage* pMe);
void testimage_FreeAppData(testimage* pMe);
boolean CreateMain(testimage* pMe);
boolean CreateProp(testimage* pMe);

===========================================================================*/
int AEEClsCreateInstance(AEECLSID ClsId, IShell *pIShell, IModule *po, void **ppObj)
{
*ppObj = NULL;

if( ClsId == AEECLSID_TESTIMAGE )
{
// Create the applet and make room for the applet structure
if( AEEApplet_New(sizeof(testimage),
ClsId,
pIShell,
po,
(IApplet**)ppObj,
(AEEHANDLER)testimage_HandleEvent,
(PFNFREEAPPDATA)testimage_FreeAppData) ) // the FreeAppData function is called after sending EVT_APP_STOP to the HandleEvent function

{
//Initialize applet data, this is called before sending EVT_APP_START
// to the HandleEvent function
if(testimage_InitAppData((testimage*)*ppObj))
{
//Data initialized successfully
return(AEE_SUCCESS);
}
else
{
//Release the applet. This will free the memory allocated for the applet when
// AEEApplet_New was called.
IAPPLET_Release((IApplet*)*ppObj);
return EFAILED;
}

} // end AEEApplet_New

}

return(EFAILED);
}


/*===========================================================================


===========================================================================*/
static boolean testimage_HandleEvent(testimage* pMe, AEEEvent eCode, uint16 wParam, uint32 dwParam)
{
//是不是这里没调用RootForm的事件啊,只是猜测,这个可以
if(IROOTFORM_HandleEvent(pMe->rootForm, eCode, wParam, dwParam))
return TRUE;
switch (eCode)
{
// App is told it is starting up
case EVT_APP_START:
// Add your code here...
//CreateMain(pMe);
CreateProp(pMe);
return(TRUE);


// App is told it is exiting
case EVT_APP_STOP:
// Add your code here...

return(TRUE);


// App is being suspended
case EVT_APP_SUSPEND:
// Add your code here...

return(TRUE);


// App is being resumed
case EVT_APP_RESUME:
// Add your code here...

return(TRUE);


// An SMS message has arrived for this app. Message is in the dwParam above as (char *)
// sender simply uses this format "//BREW:ClassId:Message", example //BREW:0x00000001:Hello World
case EVT_APP_MESSAGE:
// Add your code here...

return(TRUE);

// A key was pressed. Look at the wParam above to see which key was pressed. The key
// codes are in AEEVCodes.h. Example "AVK_1" means that the "1" key was pressed.
case EVT_KEY:
// Add your code here...

return(TRUE);


// If nothing fits up to this point then we'll just break out
default:
break;
}

return FALSE;
}


// this function is called when your application is starting up
boolean testimage_InitAppData(testimage* pMe)
{

pMe->DeviceInfo.wStructSize = sizeof(pMe->DeviceInfo);
ISHELL_GetDeviceInfo(pMe->a.m_pIShell,&pMe->DeviceInfo);

// Insert your code here for initializing or allocating resources...
pMe->piShell=pMe->a.m_pIShell;
ISHELL_CreateInstance(pMe->piShell,AEECLSID_ROOTFORM,(void **)&pMe->rootForm);
pMe->mainForm=NULL;


// if there have been no failures up to this point then return success
return TRUE;
}

boolean CreateProp(testimage* pMe)
{
IPropContainer *piPropContainer=NULL;
WExtent we={100,100};
WidgetProp wprop;
IWidget *textWidget=NULL;
IWidget *conWidget=NULL;

wprop.bVisible=TRUE;
wprop.prop=WIDGET_KEEP_EXTENT;

ISHELL_CreateInstance(pMe->piShell,AEECLSID_FORM,(void**)&pMe->mainForm);
ISHELL_CreateInstance(pMe->piShell,AEECLSID_PROPCONTAINER,(void**)&piPropContainer);
ISHELL_CreateInstance(pMe->piShell,AEECLSID_TEXTWIDGET,(void**)&textWidget);

IWIDGET_SetExtent(textWidget,&we);
IPROPCONTAINER_Insert(piPropContainer,textWidget,WIDGET_ZBOTTOMMOST,&wprop);

IPROPCONTAINER_QueryInterface(piPropContainer,AEEIID_WIDGET,(void **)&conWidget);
IFORM_SetWidget(pMe->mainForm,WID_FORM,conWidget);
IROOTFORM_PushForm(pMe->rootForm,pMe->mainForm);
}
「已注销」 2010-05-11
  • 打赏
  • 举报
回复
代码贴出来看看

2,853

社区成员

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

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