Duilib自定义控件

方法一:

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

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

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

方法二:

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导致的)。

你可能感兴趣的:(Duilib,Windows编程,C++)