DuiLib 自定义识别控件

时间:2021-10-18 22:46:02

遇到一个断点无法识别自定义的控件,运气比较好,一搜就搜出来了:

参考地址:http://www.bkjia.com/ASPjc/992050.html

主要是这个函数:

CControlUI* CDialogBuilder::Create(STRINGorID xml, LPCTSTR type, IDialogBuilderCallback* pCallback,
CPaintManagerUI* pManager, CControlUI* pParent)

这个函数 的第一个参数指定为xml文件的路径;第二个参数一般指定为NULL,我这里不详解了;第三个参数,就是识别自定义控件的关键了,这个参数要指定为继承了IDialogBuilderCallback接口的类对象的指针,比如窗体类继承IDialogBuilderCallback,这个参数就填写窗体类对象的指针。只有填写了这个参数,自定义控件才会被识别,经常有人问自己的自定义控件为什么无法被识别。多数情况就是这里没处理好;第四个参数指定CPaintManagerUI类对象指针,这个肯定会伴随着窗体类对象一起存在。最后一个参数一般为NULL。

在这里将第三个参数改为this指针(因为我定义的窗体对象继承了IDialogBuilderCallback接口),这就解决了问题。