duilib 添加自定义list一例

最近公司要换UI界面库所以就用了duilib,因为本人之前用过但是由于时间太久没用了导致之前很多控件的使用差不多忘记了。这个帖子做个记录下次忘了可以看看。

因为duilib 这个库对扩展还是比较友好的原版提供了不少的例子可以参考,没事看看官方的例子其实也能有不少的收获。这里要说一下我用的版本是以旗舰版的基础上重新改过和封装的,所以功能上差不多。

首先我的需求其实很简单,要求每个节点上有一个COmbo控件然后加上编辑框但是由于原版的list其实并不能满足一般的需求其实,大多数 情况下咱们都需要重写list

首先duilib自定义控件有两个方式,先说原版的方式比较简单,将你自己的list继承自CListUI 实现一个参数的构造函数,参数为CPaintManagerUI& paint_manager 两个成员变量

CPaintManagerUI& m_pm; 
CDialogBuilder m_dlgBuilder;

然后在初始化列表的时候给m_pm 初始化一下。接在他的父窗口中重写createControl函数 

if (_tcsicmp(pstrClass, _T("FaceList")) == 0)
		return new CFaceList(m_pm);

接着在addnode中开始插入节点这里

CListContainerElementUI* pListContainerElement = NULL;
		if (!m_dlgBuilder.GetMarkup()->IsValid())
		{
			pListContainerElement = static_cast<CListContainerElementUI *>(m_dlgBuilder.Create(_T("InjectListItem.xml"), (UINT)0, NULL, &m_pM));
		}
		else
		{
			pListContainerElement = static_cast<CListContainerElementUI*> (m_dlgBuilder.Create(UINT(0), &m_pM));
		}
		if (pListContainerElement == NULL)
		{
			return false;
		}

 

下面就跟你正常加载子控件是一样的了。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值