在windows下开发界面,现在很多公司会用到duilib,这个库其实不难,只要你有win32和MFC的开发经验,很容易上手,但是很多新手没有MFC的经验,为了让新手们可以快速上手,解决工作上的问题。今天我跟大家说说在duilib下,如何自定义控件,并且可以根据主窗口大小改变自己的大小,至于使用场景很多地方都会用到,比如播放器。
好了我们先看一下,在duilib下如何定义一个自定义控件,在duilib下,所有的控件都派生于CControlUI,所以我们的自定义控件也要继承这个类,具体代码如下,很简单,自己看。
class CWndUI : public CControlUI
{
public:
CWndUI() : m_hWnd(NULL){}
virtual void SetVisible(bool bVisible = true)
{
__super::SetVisible(bVisible);
::ShowWindow(m_hWnd, bVisible);
}
virtual void SetInternVisible(bool bVisible = true)
{
__super::SetInternVisible(bVisible);
::ShowWindow(m_hWnd, bVisible);
}
virtual void SetPos(RECT rc)
{
__super::SetPos(rc);
::SetWindowPos(m_hWnd, NULL, rc.left, rc.top, rc.right - rc.left, rc.bottom - rc.top, SWP_NOZORDER | SWP_NOACTIVATE);
}
BOOL Attach(HWND hWndNew)
{
if (!::IsWindow(hWndNew))
{
return FALSE;
}
m_hWnd = hWndNew;
return TRUE;
}
HWND Detach()
{
HWND hWnd = m_hWnd;
m_hWnd = NULL;
return hW