PopupForm不能显示出来,求救

wm356924565 2010-05-18 10:53:55

static boolean PopupForm_new(FmMgr *pMgr, int32 *pnId, IForm **ppiForm)
{
popupBase *pMe;
int32 nErr = 0;
IShell *piShell = NULL;
IWidget *staticWdg = NULL;
IXYContainer *p_xycontainer = NULL;
WidgetPos wp;
IWidget *m_pWdg;
IWidget *pImageWdg;
IWidget* pBackDrop;
WExtent we;
IImage *pimage;

if(NULL == pMgr)
{
return EBADPARM;
}

piShell = pMgr->piShell;

if( NULL == ( pMe = (popupBase*)MALLOC( sizeof(popupBase))))
{
return ENOMEMORY;
}
MEMSET( pMe, 0, sizeof(popupBase));

*pnId = BRW_FM_ID_POPUPFORM;

nErr= ISHELL_CreateInstance(piShell,AEECLSID_POPUPFORM,(void**)&pMe->piForm);
nErr += ISHELL_CreateInstance(piShell,AEECLSID_STATICWIDGET,(void**)&staticWdg);
nErr += ISHELL_CreateInstance(piShell,AEECLSID_BORDERWIDGET,(void**)&pBackDrop);
nErr += ISHELL_CreateInstance(piShell,AEECLSID_IMAGEWIDGET,(void**)&pImageWdg);
nErr += ISHELL_CreateInstance(piShell,AEECLSID_XYCONTAINER,(void**)&p_xycontainer);
if(nErr != 0)
{
return EFAILED;
}

we.height = 50;
we.width = 100;
IWIDGET_SetExtent(staticWdg,&we);
IWIDGET_SetText(staticWdg,L"test",FALSE);
pimage = ISHELL_LoadResImage(pMgr->piShell,IMAGE_RES_FILE,IDI_AUDIO);

IWIDGET_SetImage(pImageWdg,pimage);
wp.x = 0;
wp.y = 0;
wp.bVisible = TRUE;

IXYCONTAINER_Insert(p_xycontainer,pImageWdg,WIDGET_ZNORMAL,&wp);
IXYCONTAINER_Insert(p_xycontainer,staticWdg,WIDGET_ZNORMAL,&wp);


IWIDGET_SetBGColor(pBackDrop, MAKE_RGBA(125, 233, 10, 5));
IWIDGET_SetBorderWidth(pBackDrop, 0);
IFORM_SetWidget((IForm*)pMe->piForm, WID_BACKDROP, pBackDrop);

IXYCONTAINER_QueryInterface(pMe->piForm,AEEIID_WIDGET,(void**)&m_pWdg);

IFORM_SetWidget(pMe->piForm,WID_FORM,m_pWdg);

IFMBASE_Init( (FormBase*)pMe, pMe->piForm, *pnId, pMgr );

*ppiForm = pMe->piForm;

return TRUE;
}

外层已经将该POPUPForm push到IROOTFORM中了
...全文
2440 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wishifef 2010-05-18
  • 打赏
  • 举报
回复
IXYCONTAINER_QueryInterface(pMe->piForm,AEEIID_WIDGET,(void**)&m_pWdg);
你的这一行有错吧,是不是你想写成
IXYCONTAINER_QueryInterface(p_xycontainer,AEEIID_WIDGET,(void**)&m_pWdg);
wm356924565 2010-05-18
  • 打赏
  • 举报
回复
恩,注释掉就可以了。谢谢
wishifef 2010-05-18
  • 打赏
  • 举报
回复
IFMBASE_Init( (FormBase*)pMe, pMe->piForm, *pnId, pMgr );
你把这个先注释掉,然后再这个方法里直接
IROOTFORM_PushForm(……,pMe->piForm);
先看看效果,一步一步调吧!
wm356924565 2010-05-18
  • 打赏
  • 举报
回复
改了还是显示不出来

2,853

社区成员

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

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