Duilib自定义控件

方法一:

1.1 继承IDialogBuilderCallback类,重写CreateControl函数。

1.2 在使用该控件的类中继承OnCreate函数,代码如下:

        CDialogBuilder builder;
        CDialogBuilderCallbackEx cb;
        CControlUI* pRoot = builder.Create(_T("LoginMainWnd.xml"), (UINT)0,  &cb, &m_pm);

实例:在窗口MainWnd中自定义一个控件miFileName(该控件使用xml的形式定义),在控件miFileName里面定义一个CaoGifAnim控件。

如图:1、MainWnd中定义miFileName

2、miFileName控件中定义CaoGifAnim

3、mainWnd的CreateControl函数

4、miFileName控件的DoInit函数(关键是添加callback)

 

方法二:

2.1 在使用该控件的类中重写CreateControl函数。

2.2 使用WindowImplBase类实现的创建窗口的方法。也就是不重写OnCreate。

方法三:使用REGIST_DUICONTROL注册(在DuiLib_Ultimate中封装)。

未完待续...

 

 

在自定义控件中继承实现

LPCTSTR GetClass() const;

LPVOID GetInterface(LPCTSTR pstrName);

在窗口中继承实现

CControlUI* CreateControl();

 

说明一下:在自定义控件中添加void SetAttribute(LPCTSTR pstrName, LPCTSTR pstrValue);之后,在InitWindow中使用该控件对于的name找不到(这个问题找了很久的原因,最终发现是添加了SetAttribute导致的)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值