duilib框架中的控件比较少,通常我们需要自定义控件,步骤如下:
1、定义一个控件类例如MyCustomControl,类需要实现LRESULT CALLBACK WndProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam);
2、在xml文件可以使用自定义的标签
3、在使用控件的类的CreateControl(LPCTSTR pstrClass)方法中判断是否有自定义标签,如有则执行相应的代码,例如下面代码
if (!_tcscmp(pstrClass, _T("MyCustomControll")))
{
CWndUI* pRet = new CWndUI();
mycustom_wnd_.Create(GetHWND(), _T("MyControll"), WS_CHILD | WS_VISIBLE, 0, 0, 0, 0, 0);
mycustom_wnd_.SetFitMode(FALSE);
mycustom_wnd_.SetBkColor(0);
pRet->Attach(mycustom_wnd_.handle());
return pRet;
}