1 Duilib设置窗体阴影

1.1 初始化CWndShadow

在Win32窗口的主函数中加入以下代码,初始化CWndShadow

CWndShadow::Initialize(hInstance);

1.2 duilib窗口类设置

在需要添加窗体阴影的duilib窗口类中新建一个CWndShadow类型的成员变量或者指针,这里以类对象为例进行说明:

CWndShadow m_WndShadow;

然后在窗口类的InitWindow虚函数中增加以下代码,创造阴影,
其中,窗体阴影分为不使用背景阴影图片的阴影和使用背景图片的阴影。

1.2.1 不使用背景阴影图片的阴影设置

代码示例:

m_WndShadow.Create(m_hWnd);
m_WndShadow.SetSize(4);
m_WndShadow.SetPosition(0, 0);

1.2.2 使用背景阴影图片的阴影设置

代码示例:

m_pWndShadow.Create(m_hWnd);
RECT rcCorner = { 6,6,7,7 }; // 阴影左上右下的宽度
RECT rcHoleOffset = { 0,0,0,0 }; // rcHoleOffset作用是修复圆角显示空白的bug
m_pWndShadow.SetImage(_T(“阴影背景.png”), rcCorner, rcHoleOffset);