class CMyDialog : public CDialog
{
enum { IDD = IDD_DIALOG1 };
DECLARE_MESSAGE_MAP()
public:
CMyDialog(CWnd* pParent = NULL);
virtual BOOL OnInitDialog();
afx_msg BOOL OnEraseBkgnd(CDC* pDC);
};
BEGIN_MESSAGE_MAP(CMyDialog, CDialog)
ON_WM_ERASEBKGND()
END_MESSAGE_MAP()
CMyDialog::CMyDialog(CWnd* pParent /*=NULL*/)
: CDialog(CMyDialog::IDD, pParent)
{
}
BOOL CMyDialog::OnInitDialog()
{
CDialog::OnInitDialog();
ModifyStyleEx(0, WS_EX_LAYERED);
((CListCtrl*)GetDlgItem(IDC_LIST1))->SetBkColor(RGB(1,2,3));
SetLayeredWindowAttributes(RGB(1,2,3), 0, LWA_COLORKEY);
return TRUE;
}
BOOL CMyDialog::OnEraseBkgnd(CDC* pDC)
{
RECT rc;
GetClientRect(&rc);
pDC->FillSolidRect(&rc, RGB(1,2,3));
return TRUE;
}
//重载了NM_CUSTOMDRAW..
(NMHDR *pNMHDR, LRESULT *pResult)
{
LPNMLVCUSTOMDRAW lpLVCustomDraw = (LPNMLVCUSTOMDRAW)(pNMHDR);
switch(lpLVCustomDraw ->nmcd.dwDrawStage)
{
case CDDS_ITEMPREPAINT:
case CDDS_ITEMPREPAINT | CDDS_SUBITEM:
lpLVCustomDraw ->clrText = CLR_DEFAULT;
lpLVCustomDraw->clrTextBk = RGB(1,2,3); //这里的RGB和要设置透明的一样
break;
default:
break;
}
*pResult = 0;
*pResult |= CDRF_NOTIFYPOSTPAINT;
*pResult |= CDRF_NOTIFYITEMDRAW;
*pResult |= CDRF_NOTIFYSUBITEMDRAW;
}
CListCtrl透明背景图片
最新推荐文章于 2017-10-27 10:10:32 发布