在DuiLib中实现自定义控件,和QT重载类似,也是继承原有的控件只不过是要将这个控件也能在xml中进行使用。当作xml中的一个节点。下面就看一下我写的一个小例子,这个例子是重载了一个按钮(CButtonUI)。
重载CButtonUI的头文件(SubControl.h):
#ifndef SUBCONTROL_H
#define SUBCONTROL_H
#include "..\DuiLib\UIlib.h"
using namespace DuiLib;
class CButtonEXUI : public CButtonUI
{
public:
CButtonEXUI();
~CButtonEXUI();
public:
virtual LPCTSTR GetClass() const;
virtual LPVOID GetInterface(LPCTSTR pstrName);
virtual void SetAttribute(LPCTSTR pstrName, LPCTSTR pstrValue);
void SetButtonText(LPCTSTR text);
};
#endif //SUBCONTROL_H
实现文件(SubControl.cpp):
#include "SubControl.h"
CButtonEXUI::CButtonEXUI()
{
}
CButtonEXUI::~CButtonEXUI()
{
}
LPCTSTR CButtonEXUI::GetClass() const
{
// 这个是类名,去掉开头的是C字符
return _T("ButtonEXUI");
}
LPVOID