首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Brew >

Listwidget 无法显示

2012-12-24 
求助Listwidget 无法显示。本帖最后由 wm356924565 于 2010-04-30 11:55:13 编辑static boolean CreateMain

求助Listwidget 无法显示。
本帖最后由 wm356924565 于 2010-04-30 11:55:13 编辑


static boolean CreateMainForm(BUIWTask *pMe)
{
int result = 0;
IWidget                *containerWdg = NULL;
WidgetPos              wp;
WExtent                tsWE;
IWidget                *titleWidget;
IWidget                *softWidget;
/*IWidget                *staticWdg;
IWidget                *iWdg;
IWidget                *sWdg;
*/
result = ISHELL_CreateInstance(pMe->m_pShell, AEECLSID_FORM, (void **)&(pMe->m_pMainForm));
result += ISHELL_CreateInstance(pMe->m_pShell, AEECLSID_XYCONTAINER, (void **)&pMe->m_pXYContainer);
result += ISHELL_CreateInstance(pMe->m_pShell, AEECLSID_STATICWIDGET, (void **)&containerWdg);
result += ISHELL_CreateInstance(pMe->m_pShell,AEECLSID_LISTWIDGET,(void**)&pMe->m_pListWidget);

if(result != 0)
{
return EFAILED;
}


IFORM_GetTitleWidget((IForm*)pMe->m_pRootForm, &titleWidget);
IWIDGET_GetPreferredExtent(titleWidget,&tsWE);
tsWE.height = 30;
tsWE.width = pMe->DeviceInfo.cxScreen;
IWIDGET_SetExtent(titleWidget,&tsWE);
IWIDGET_SetFlags(titleWidget,IDF_ALIGN_MIDDLE|IDF_ALIGN_CENTER);
IWIDGET_SetBGColor(titleWidget,MAKE_RGB(15,118,209));
IFORM_SetText(pMe->m_pMainForm,FID_TITLE,L"伊索寓言");

IFORM_SetText(pMe->m_pMainForm, FID_SOFTKEY1, L"选项");
IFORM_SetText(pMe->m_pMainForm, FID_SOFTKEY2, L"返回");
/*IFORM_SetResText(pMe->m_pMainForm,FID_TITLE,BUIWTASK_RES_FILE,IDS_TITLE);
IFORM_SetSoftkeys(pMe->m_pMainForm,BUIWTASK_RES_FILE,IDS_SOFTKEY1,IDS_SOFTKEY2);*/
IFORM_GetSoftkeyWidget((IForm*)pMe->m_pRootForm,&softWidget);
IWIDGET_SetBGColor(softWidget,MAKE_RGB(15,118,209));
IWIDGET_SetExtent(softWidget,&tsWE);

HANDLERDESC_Init(&pMe->m_nHandlerDesc,mainFormHandleEvent,pMe,mainformFree);
IFORM_SetHandler(pMe->m_pMainForm,&pMe->m_nHandlerDesc);

IWIDGET_SetItemWidth(pMe->m_pListWidget, pMe->DeviceInfo.cxScreen - 16);
IWIDGET_SetItemHeight(pMe->m_pListWidget,30);
IWIDGET_SetTopIndex(pMe->m_pListWidget, 1);
IWIDGET_SetFocusIndex(pMe->m_pListWidget, 1);
IWIDGET_SetHintRows(pMe->m_pListWidget, 5);
IWIDGET_SetBGColor(pMe->m_pListWidget,MAKE_RGB(255, 0, 0));

ISHELL_CreateInstance(pMe->m_pShell,AEECLSID_SCROLLBARWIDGET,(void**)&pMe->m_pScrollWidget);
IWIDGET_SetProperty(pMe->m_pScrollWidget,PROP_SCROLLPAD,0);
IWIDGET_SetProperty(pMe->m_pScrollWidget,PROP_SCROLLHANDLEWIDTH,10);
IWIDGET_SetProperty(pMe->m_pScrollWidget,PROP_FLAGS, SBWF_ARROWS);
IWIDGET_SetProperty(pMe->m_pScrollWidget, PROP_SCROLLBARENDPAD, 7);
    IWIDGET_SetProperty(pMe->m_pScrollWidget, PROP_ACTIVE_SCROLLCOLOR, MAKE_RGB(100, 200, 0));
    IWIDGET_SetProperty(pMe->m_pScrollWidget, PROP_ACTIVE_SCROLLHANDLECOLOR, MAKE_RGB(256, 90, 90));


    IWIDGET_SetProperty(pMe->m_pScrollWidget, PROP_SCROLLFILLCOLOR, MAKE_RGB(200, 100, 0));
IDECORATOR_SetWidget((IDecorator*)pMe->m_pScrollWidget, pMe->m_pListWidget);

wp.x = 10;
wp.y = 10;
wp.bVisible = TRUE;
result = IXYCONTAINER_Insert(pMe->m_pXYContainer, pMe->m_pListWidget, WIDGET_ZNORMAL, &wp);
//result = IXYCONTAINER_Insert(pMe->m_pXYContainer, pMe->m_pScrollWidget, WIDGET_ZNORMAL, &wp);

result = IXYCONTAINER_QueryInterface(pMe->m_pXYContainer, AEEIID_WIDGET, (void**)&pMe->m_pWidget);
result += IFORM_SetWidget(pMe->m_pMainForm, WID_FORM, pMe->m_pWidget);
if(result != 0)
return EFAILED;

IWIDGET_Release(containerWdg);


return SUCCESS;
}



list里面还没有内容,是不是list的背景色也看不见?
[解决办法]
自己顶
[解决办法]
我也不会用,帮你顶吧
[解决办法]
IDECORATOR_SetWidget((IDecorator*)pMe->m_pScrollWidget, pMe->m_pListWidget);

这里应该有问题,应该加一句
pMe->m_pListWidget = pMe->m_pScrollWidget;  你看一下装饰工厂

    wp.x = 10;
    wp.y = 10;
    wp.bVisible = TRUE;
    result = IXYCONTAINER_Insert(pMe->m_pXYContainer, pMe->m_pListWidget, WIDGET_ZNORMAL, &wp);


[解决办法]
你有设置listwidget和scrollbar的extent吗?还有,插入到container的时候,应该是插pMe->m_pScrollWidget才对
[解决办法]
该回复于2011-04-12 17:03:47被版主删除

热点排行