窗口、CListCtrl控件、Edit控件设置背景图片

来源:互联网 发布:淘宝账号注册官网 编辑:程序博客网 时间:2024/06/05 18:46

如下图所示:


首先要导入bmp格式的背景图片:

1、窗口绘制背景图:

BOOL C账号管理器Dlg::OnEraseBkgnd(CDC* pDC){CDC MemDC;MemDC.CreateCompatibleDC(pDC);CBitmap Cbp;Cbp.LoadBitmap(IDB_FILEMGR);MemDC.SelectObject(&Cbp);BITMAP Bp;Cbp.GetBitmap(&Bp);CRect rect;GetClientRect(&rect);pDC->StretchBlt(0,0,rect.Width(),rect.Height(),&MemDC,0,0,Bp.bmWidth,Bp.bmHeight,SRCCOPY);MemDC.DeleteDC();return TRUE;//return CDialogEx::OnEraseBkgnd(pDC);}

2、3个编辑框绘制背景图:

HBRUSH C账号管理器Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor){HBRUSH hbr = CDialogEx::OnCtlColor(pDC, pWnd, nCtlColor);switch (pWnd->GetDlgCtrlID()){case IDC_STATIC_NAME:case IDC_STATIC_ID:case IDC_STATIC_PW:pDC->SetBkMode(TRANSPARENT);pDC->SetTextColor(RGB(0,255,0));hbr = (HBRUSH)GetStockObject(NULL_BRUSH);//空画刷,不加此句会有阴影break;case IDC_NAME:case IDC_ID:case IDC_PASSWORD:CWnd* pd; CRect rc;if(pWnd->GetDlgCtrlID() == IDC_NAME)       pd = (CWnd*)GetDlgItem(IDC_NAME);if(pWnd->GetDlgCtrlID() == IDC_ID)         pd = (CWnd*)GetDlgItem(IDC_ID);if(pWnd->GetDlgCtrlID() == IDC_PASSWORD)   pd = (CWnd*)GetDlgItem(IDC_PASSWORD);pd->GetClientRect(&rc);ScreenToClient(&rc);pDC->SetBkMode(TRANSPARENT);pDC->SetTextColor(RGB(255,0,0));CBitmap bmp;bmp.LoadBitmap(IDB_FILEMGR);CBrush brush(&bmp);CBrush* pOldBrush = (CBrush*)pDC->SelectObject(&brush);pDC->FillRect(&rc,&brush);hbr = (HBRUSH)brush;break;}return hbr;}

3、CListCtrl控件绘制背景图:在对话框的初始化函数中进行也可以:

m_List.SetTextBkColor(CLR_NONE);m_List.SetBkColor(CLR_NONE);m_List.SetTextColor(RGB(255,0,0));TCHAR szBuffer[_MAX_PATH];VERIFY(::GetModuleFileName(AfxGetInstanceHandle(), szBuffer, _MAX_PATH));CString sPath = (CString)szBuffer;sPath = sPath.Left(sPath.ReverseFind('\\') + 1);sPath += "file manager.bmp";m_List.SetBkImage( sPath.GetBuffer(sPath.GetLength()), TRUE);   // 定义:CListCtrl   m_controllist1;sPath.ReleaseBuffer();