要将 CS_DROPSHADOW 应用于 CDialog 的子类,请遵循以下步骤:
以下是一个示例代码:
class CMyDialog : public CDialog
{
public:
CMyDialog(CWnd* pParent = NULL)
: CDialog(IDD_MYDIALOG, pParent)
{
Create(NULL, _T("My Dialog"));
ModifyStyle(0, WS_POPUP | WS_VISIBLE);
ModifyStyleEx(0, WS_EX_TOPMOST | WS_EX_TOOLWINDOW);
ModifyStyleEx(0, WS_EX_LAYERED | WS_EX_TRANSPARENT);
SetLayeredWindowAttributes(0, 255, LWA_ALPHA);
SetWindowPos(&wndTopMost, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);
}
// ...
afx_msg void OnPaint();
afx_msg void OnNcPaint();
afx_msg BOOL OnNcActivate(BOOL bActive);
afx_msg LRESULT OnNcCalcSize(WPARAM wParam, LPARAM lParam);
afx_msg LRESULT OnNcHitTest(CPoint point);
afx_msg void OnNcMouseMove(UINT nHitTest, CPoint point);
afx_msg void OnNcLButtonDown(UINT nHitTest, CPoint point);
afx_msg void OnNcLButtonUp(UINT nHitTest, CPoint point);
afx_msg void OnNcRButtonDown(UINT nHitTest, CPoint point);
afx_msg void OnNcRButtonUp(UINT nHitTest, CPoint point);
DECLARE_MESSAGE_MAP()
};
BEGIN_MESSAGE_MAP(CMyDialog, CDialog)
ON_WM_PAINT()
ON_WM_NCPAINT()
ON_WM_NCACTIVATE()
ON_WM_NCCALCSIZE()
ON_WM_NCHITTEST()
ON_WM_NCMOUSEMOVE()
ON_WM_NCLBUTTONDOWN()
ON_WM_NCLBUTTONUP()
ON_WM_NCRBUTTONDOWN()
ON_WM_NCRBUTTONUP()
END_MESSAGE_MAP()
void CMyDialog::OnPaint()
{
CPaintDC dc(this);
CRect rect;
GetClientRect(rect);
dc.FillSolidRect(rect, RGB(255, 255, 255));
}
void CMyDialog::OnNcPaint()
{
CWindowDC dc(this);
CRect rect;
GetWindowRect(rect);
rect.OffsetRect(-rect.left, -rect.top);
dc.DrawEdge(rect, EDGE_RAISED, BF_RECT);
}
BOOL CMyDialog::OnNcActivate(BOOL bActive)
{
return TRUE;
}
LRESULT CMyDialog::OnNcCalcSize(WPARAM wParam, LPARAM lParam)
{
return 0;
}
LRESULT CMyDialog::OnNcHitTest(CPoint point)
{
return HTCLIENT;
}
void CMyDialog::OnNcMouseMove(UINT nHitTest, CPoint point)
{
}
void CMyDialog::OnNcLButtonDown(UINT nHitTest, CPoint point)
{
}
void CMyDialog::OnNcLButtonUp(UINT nHitTest, CPoint point)
{
}
void CMyDialog::OnNcRButtonDown(UINT nHitTest, CPoint point)
{
}
void CMyDialog::OnNcRButtonUp(UINT nHitTest, CPoint point)
{
}
这个示例代码将创建一个具有阴影效果的窗口,并且可以通过绘制窗口的控件来自定义窗口的外观。
领取专属 10元无门槛券
手把手带您无忧上云