基于buiw创建List

static int TestListFrom_CreateItem(TestListFrom *pThis)
{
   int nErr = SUCCESS;

   nErr = ISHELL_CreateInstance(pThis->a.m_pIShell,AEECLSID_IMAGEWIDGET,(void**)&pThis->piwImg);
   nErr += ISHELL_CreateInstance(pThis->a.m_pIShell,AEECLSID_STATICWIDGET,(void**)&pThis->piwText);
   nErr += ISHELL_CreateInstance(pThis->a.m_pIShell,AEECLSID_PROPCONTAINER,(void**)&pThis->pIPropContainer);

   if(nErr == SUCCESS)
   {
        WidgetProp prop;
        WExtent imgwe = {30,30};
        WExtent textwe  = {50,30};

        //image widget
        prop.bVisible = TRUE;
        prop.prop = WIDGET_KEEP_EXTENT;
        IWIDGET_SetExtent(pThis->piwImg,&imgwe);
        //IWIDGET_SetBorderWidth(pThis->piwImg,1);
        //IWIDGET_SetBorderColor(pThis->piwImg,MAKE_RGB(255,255,255));;
        IPROPCONTAINER_Insert(pThis->pIPropContainer,pThis->piwImg, WIDGET_ZNORMAL, &prop);
        //text widget
        prop.bVisible = TRUE;
        prop.prop = 1;
        //IWIDGET_SetExtent(pThis->piwText,&textwe);
        //IWIDGET_SetBorderWidth(pThis->piwText,1);
       // IWIDGET_SetBorderColor(pThis->piwText,MAKE_RGB(255,0,0));
        IWIDGET_SetFlags(pThis->piwText,IDF_ALIGN_LEFT|IDF_ALIGN_MIDDLE);
        IWIDGET_SetFGColor(pThis->piwText,MAKE_RGB(255,255,255));
        IPROPCONTAINER_Insert(pThis->pIPropContainer,pThis->piwText,WIDGET_ZNORMAL,&prop);

        IPROPCONTAINER_QueryInterface(pThis->pIPropContainer,AEEIID_WIDGET,(void**)&pThis->piwItem);
        IWIDGET_SetLayoutStyle(pThis->piwItem,LAYOUT_HORZ);
   }

  return nErr;
}
static int TestListFrom_CreateList(TestListFrom *pThis)
{
    int nErr = SUCCESS;

    nErr = TestListFrom_CreateItem(pThis);
    //nErr += ISHELL_CreateInstance(pThis->a.m_pIShell,AEECLSID_LISTFORM,(void**)&pThis->pITestListFrom);
    nErr += ISHELL_CreateInstance(pThis->a.m_pIShell,AEECLSID_FORM,(void**)&pThis->pITestListFrom);
    nErr += ISHELL_CreateInstance(pThis->a.m_pIShell,AEECLSID_VECTORMODEL,(void**)&pThis->pIVectMod);
    nErr += ISHELL_CreateInstance(pThis->a.m_pIShell,AEECLSID_VALUEMODEL,(void**)&pThis->pIValueMod);
    nErr += ISHELL_CreateInstance(pThis->a.m_pIShell,AEECLSID_LISTWIDGET,(void**)&pThis->piwList);
    if(nErr == SUCCESS)
    {
        IWIDGET_SetItemHeight(pThis->piwList,30);
        IWIDGET_SetItemWidth(pThis->piwList,240);
        IWIDGET_SetBGColor(pThis->piwList,MAKE_RGB(0,0,0));
       
        IWIDGET_SetModel(pThis->piwItem,(IModel*)pThis->pIValueMod);
        IWIDGET_SetIndexer(pThis->piwList,(PFNINDEXER)TestListFrom_ListIndex,pThis);
        IMODEL_AddListenerEx((IModel*)pThis->pIValueMod,&pThis->Valuelistener,(PFNLISTENER)TestListFrom_ValueListener,(void*)pThis);
       
       
        HANDLERDESC_Init(&pThis->widgethd ,TestListFrom_WidgetHandleEvent,pThis,NULL);
        IWIDGET_SetHandler(pThis->piwList,&pThis->widgethd);
       
        nErr = IFORM_SetWidget(pThis->pITestListFrom,WID_FORM,pThis->piwList);
        IWIDGET_Release(pThis->piwList);
      
        TestListFrom_InitalData(pThis);
        IWIDGET_SetModel(pThis->piwList,(IModel*)pThis->pIVectMod);
        IDECORATOR_SetWidget((IDecorator*)pThis->piwList,pThis->piwItem);

        TestListFrom_FormDes(pThis);
    }
    IROOTFORM_PushForm(pThis->pIRootForm,pThis->pITestListFrom);
    HANDLERDESC_Init(&pThis->Formhd ,TestListFrom_FormHandleEvent,pThis,NULL);
    IFORM_SetHandler(pThis->pITestListFrom,&pThis->Formhd);

    return nErr;
}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值