怎么更改widget状态
发布时间:2010-05-30 20:16:02 文章来源:www.iduyao.cn 采编人员:星星草
如何更改widget状态?
我不知道brew里面有没有“活动”这个词,我想实现当widget A接收到方向键时,使widget B处于活动状态,这时再按方向键,就由B来处理。 我试了
IWidget_MoveFocus(A, B );
IWIDGET_SetSelected(B,false);
IWIDGET_SetSelected(A,true);
IWidget_SetFocus(B,false);
IWidget_SetFocus(A,true);
这几个函数都不行,虽然焦点移动到了B,但按键事件还是被A接收到了,除非用点击一下B,B才能接收到事件,请问要做哪些设置才能让B能按收到事件。请大家帮忙.
注:我的A在一个container_a内,而container_a和B又都是container_main的孩子,我试了把焦点从container_a从移出来,还是不行。
------解决方案--------------------
发送一个avk_?啊
------解决方案--------------------
是不是应该使用 IWidget_MoveFocus(pw, B ); pw是根容器或者container_main对应的widget,不应该用A。
------解决方案--------------------
可能是你重载了A或者是B的事件了,
typedef struct _test{
AEEApplet a ;
AEEDeviceInfo DeviceInfo;
IShell *meIshell;//
IDisplay *meIDisplay;
IRootForm *rootForm;
IForm *mainForm;
IXYContainer *mainContainer;
IWidget *text1Widget;
IWidget *text2Widget;
IXYContainer *aContaienr;
} test;
void testFouce(gridWidget1202 *pMe)
{
int result = 0;
WidgetPos wp;
WExtent tsWE;
IWidget *testWidget=NULL;
ISHELL_CreateInstance(pMe->meIshell,AEECLSID_ROOTFORM,(void**)&pMe->rootForm);
result = ISHELL_CreateInstance(pMe->meIshell, AEECLSID_FORM, (void **)&(pMe->mainForm));
result += ISHELL_CreateInstance(pMe->meIshell, AEECLSID_XYCONTAINER, (void **)&pMe->mainContainer);
result += ISHELL_CreateInstance(pMe->meIshell, AEECLSID_XYCONTAINER, (void **)&pMe->aContaienr);
result += ISHELL_CreateInstance(pMe->meIshell,AEECLSID_TEXTWIDGET,(void**)&pMe->text1Widget);
result += ISHELL_CreateInstance(pMe->meIshell,AEECLSID_TEXTWIDGET,(void**)&pMe->text2Widget);
tsWE.height=30;
tsWE.width=150;
IWIDGET_SetExtent(pMe->text1Widget,&tsWE);
wp.x=10;
wp.y=10;
wp.bVisible=TRUE;
result = IXYCONTAINER_Insert(pMe->aContaienr,pMe->text1Widget, WIDGET_ZNORMAL, &wp);
result = IXYCONTAINER_QueryInterface(pMe->aContaienr, AEEIID_WIDGET, (void**)&testWidget);
tsWE.height=150;
tsWE.width=240;
IWIDGET_SetExtent(testWidget,&tsWE);
wp.x=0;
wp.y=0;
wp.bVisible=TRUE;
result = IXYCONTAINER_Insert(pMe->mainContainer,testWidget, WIDGET_ZNORMAL, &wp);
tsWE.height=30;
tsWE.width=180;
IWIDGET_SetExtent(pMe->text2Widget,&tsWE);
wp.x=10;
wp.y=200;
wp.bVisible=TRUE;
result = IXYCONTAINER_Insert(pMe->mainContainer, pMe->text2Widget, WIDGET_ZNORMAL, &wp);
result = IXYCONTAINER_QueryInterface(pMe->mainContainer, AEEIID_WIDGET, (void**)&pMe->m_pWidget);
result += IFORM_SetWidget(pMe->mainForm, WID_FORM, pMe->m_pWidget);
IROOTFORM_PushForm(pMe->rootForm,pMe->mainForm);
}
case EVT_APP_START:testFouce(pMe);return(TRUE);
case EVT_KEY:
if(wParam == AVK_UP)
{
IFORM_GetWidget(pMe->mainForm, WID_FORM, (IWidget **)&pWidget);
IWIDGET_MoveFocus(pWidget, (IWidget *)WIDGET_FOCUS_NEXT);
IWIDGET_Release(pWidget);
}
if(wParam == AVK_DOWN)
{
IFORM_GetWidget(pMe->mainForm, WID_FORM, (IWidget **)&pWidget);
IWIDGET_MoveFocus(pWidget, (IWidget *)WIDGET_FOCUS_PREV);
IWIDGET_Release(pWidget);
}
return(TRUE);
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。
其他相似内容:
-
什么情况下应用会收到EVT_KEY_HOOK_XXX事件
最近调代码的时候,发现应用莫名其妙地收到了EVT_KEY_HOOK_XXX事件,而没有捕获到我真正...
-
怎么让数字转化成字符串?
我的程序,需在手机上显示一些记录的条数,这些条数不是固定的,视情况而定,我需要把记录的条数显示到手机...
-
如何获取基站CellID信息
RT
------解决方案--------------------
IPOSDET_GetSectorInfo这个接口...
-
文本的字体显示问题;和保存.txt时,在模拟器上保存成功,到真机上就保存失败,这是什么原因?
我资源管理里面加载的汉子是直接从网上下载...
-
BREW如何获取手机号码
BREW如何获取手机号码
------解决方案--------------------
如果在联网的时候使用了CTWAP的网关,可以从ht...
-
关于BREW里面的电池条问题?怎么才能知道这个电池条是否处于关闭或者打开的状态?
C/C++ code
HTC_SetAnn(pMe->a.m_pIDisplay,0);
...
-
我快崩溃了
切分一行两列的窗口时,左边的视图类是:(一个对话框资源,里面包含树形控件,同时为该对话框添加了一个类,但基类是CFormView)。...
-
关于BREW资源编辑器,里面加载的汉字的极限?
我用资源编辑器加载汉字,我大量的加载汉字,结果就出现问题。加载几百个汉字,模拟器上不会...
-
BREW里面的动画是怎么播放的?
我用了 高通SDK 下的 BCI软件编辑了个 4帧的动画,保存成.bci文件,然后通过资源管理器加载进去。
ISHEL...
-
急啊,求大侠啦!
各位大侠,小弟初学BREW MP,现在已安装BMP_SDKMP_7.10.12_ZHCN_SETUP,在VS 2010的工具栏里也有BMP的插件,但是为什么插...