我写了一个TABWIDGET但是无法显示,只能显示CARDCONTAINER里面的内容 请大家帮忙看看哪里有问题 谢谢
显示的结果如下
代码:
int result;
IWidget *containerWdg = NULL;
WidgetPos wp;
WExtent we;
AECHAR *staticText;
ScrollText scrollText;
// int i =0;
IWidget *staticWdg;
IWidget *iWdg;
IWidget *sWdg;
IBitmap *imageTitle = NULL;
AECHAR *pTemp;
// BitmapStaticInfo *info = NULL;
uint16 i = 0;
uint16 image_id;
uint16 string_id;
IWidget *imageWdg;
IDecorator *piDecorator = NULL;
result = ISHELL_CreateInstance(pMe->pIShell, AEECLSID_FORM, (void **)&pMe->mainForm);
//wade start
result += ISHELL_CreateInstance(pMe->pIShell, AEECLSID_CARDCONTAINER, (void **)&pMe->mainContainer);
result += ISHELL_CreateInstance(pMe->pIShell, AEECLSID_TABWIDGET, (void **)&pMe->tabWdg);
result += ISHELL_CreateInstance(pMe->pIShell, AEECLSID_VECTORMODEL, (void **)&pMe->vectorMod);
result += ISHELL_CreateInstance(pMe->pIShell, AEECLSID_IMAGESTATICWIDGET, (void **)&staticWdg);
result += ISHELL_CreateInstance(pMe->pIShell, AEECLSID_STATICWIDGET, (void **)&sWdg);
result += ISHELL_CreateInstance(pMe->pIShell, AEECLSID_BITMAPWIDGET, (void **)&iWdg);
result += ISHELL_CreateInstance(pMe->pIShell, AEECLSID_STATICWIDGET, (void **)&pMe->staticWdg);
if(result != 0)
return EFAILED;
IWIDGET_SetFlags(iWdg, IDF_ALIGN_MIDDLE);
IWIDGET_SetImageStaticImageWidget(staticWdg, iWdg);
IWIDGET_SetImageStaticStaticWidget(staticWdg, sWdg);
IWIDGET_SetModel(pMe->tabWdg, (IModel *)pMe->vectorMod);
IFORM_SetResText(pMe->mainForm, FID_TITLE,BUIW01_RES_FILE, IDS_TITLE);
IFORM_SetSoftkeys(pMe->mainForm, BUIW01_RES_FILE, IDS_SOFTKEY1, IDS_SOFTKEY2);
HANDLERDESC_Init(&pMe->mainFormHandler, MainFormHandleEvent, pMe, mainFormFree);
IFORM_SetHandler(pMe->mainForm, &pMe->mainFormHandler);
IWIDGET_SetSelectedBGColor(staticWdg, MAKE_RGB(78, 130, 188));
IWIDGET_SetSelectedFGColor(staticWdg, MAKE_RGB(255, 255, 255));
IWIDGET_SetActiveFGColor(staticWdg, MAKE_RGB(255, 255, 0));
IWIDGET_SetFlags(staticWdg, IDF_ALIGN_MIDDLE);
IDECORATOR_SetWidget((IDecorator *)pMe->tabWdg, staticWdg);
IWIDGET_QueryInterface(pMe->tabWdg, AEEIID_DECORATOR, (void**) &piDecorator);
ICARDCONTAINER_QueryInterface(pMe->mainContainer, AEEIID_WIDGET, &containerWdg);
IDECORATOR_SetWidget((IDecorator *)piDecorator, containerWdg);
{
IValueModel *pValueMod;
IWIDGET_GetModel(staticWdg, AEEIID_VALUEMODEL, (IModel **)&pValueMod);
IVALUEMODEL_AdaptSet(pValueMod, (PFNADAPTSET)ListItemValueAdaptSet, pMe);
IVALUEMODEL_Release(pValueMod);
}
for(i=0;i<2;i++)
{
image_id=IDI_OBJECT_5001+i;
string_id=IDS_SOFTKEY1;
imageTitle = ISHELL_LoadResBitmap(pMe->pIShell, BUIW01_RES_FILE, image_id);//pMe->a.m_pIShell
pTemp = MALLOC(100);
ISHELL_LoadResString(pMe->pIShell, BUIW01_RES_FILE, string_id, pTemp, 100);
pMe->ListInfo[i].pwText = pTemp;
pMe->ListInfo[i].piImage = imageTitle;
IVECTORMODEL_Add(pMe->vectorMod, &pMe->ListInfo[i]);
}
we.height = 50;
we.width = 270;
IWIDGET_SetExtent(pMe->staticWdg, &we);
IWIDGET_SetBorderWidth(pMe->staticWdg, 1);
IWIDGET_SetBorderColor(pMe->staticWdg, MAKE_RGB(255, 255, 0));
staticText = MALLOC(100);
result = ISHELL_LoadResString(pMe->pIShell, BUIW01_RES_FILE, IDS_STATIC01+1, staticText, 100);
IWIDGET_SetText(pMe->staticWdg, staticText, TRUE);
IWIDGET_SetFlags(pMe->staticWdg, IDF_ALIGN_CENTER | IDF_ALIGN_MIDDLE);
wp.x = 0;
wp.y = 0;
wp.bVisible = TRUE;
ICARDCONTAINER_Insert(pMe->mainContainer, pMe->staticWdg, WIDGET_ZNORMAL, &wp);
//*/
result = ICARDCONTAINER_QueryInterface(pMe->mainContainer, AEEIID_WIDGET, &containerWdg);
//IWIDGET_QueryInterface(pMe->tabWdg, AEEIID_WIDGET, (void**) &containerWdg);
result += IFORM_SetWidget(pMe->mainForm, WID_FORM, containerWdg);
if(result != 0)
return EFAILED;
IWIDGET_Release(pMe->tabWdg);
IWIDGET_Release(containerWdg);