加背景圖片時,自己喜歡用下面的方法:
Windows在向視窗發送WM_PAINT訊息之前,總會發送一個WM_ERASEBKGND訊息通知該視窗擦除背景,預設情況下,Windows將以視窗的背景色清除該視窗。
可以響應視窗(包括子項目)的WM_ERASEBKGND,以更改它們的背景。WM_ERASEBKGND的映射函數原型如下:
afx_msg BOOL OnEraseBkgnd( CDC* pDC );
傳回值:
指定背景是否已清除,如果為FALSE,系統將自動清除
參數:
pDC指定了繪製操作所使用的裝置環境。
大致代碼時:
BOOL CUi4Dlg::OnInitDialog()
{
//…
//載入位元影像
//CBitmap m_Back;
m_Back.LoadBitmap(IDB_BACK);
//…
}
BOOL CUi4Dlg::OnEraseBkgnd(CDC* pDC)
{
CDC dc;
dc.CreateCompatibleDC(pDC);
dc.SelectObject(&m_Back);
//擷取BITMAP對象
BITMAP hb;
m_Back.GetBitmap(&hb);
//擷取視窗大小
CRect rt;
GetClientRect(&rt);
//顯示位元影像
pDC->StretchBlt(0, 0, rt.Width(), rt.Height(),
&dc, 0, 0, hb.bmWidth, hb.bmHeight, SRCCOPY);
return TRUE;
}
HBRUSH CUi4Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
//設定透明背景模式
pDC->SetBkMode(TRANSPARENT);
//設定背景刷子為空白
return (HBRUSH)::GetStockObject(HOLLOW_BRUSH);
}
對話方塊加入圖片時,採用下面的方法:
步驟:
先在資源裡Import一張圖片,ID為IDB_BITMAP2
然後在對話方塊上添加一個picture控制項,右鍵點擊開啟屬性,
將type下拉框選擇BITMAP,緊跟著下面就出現一個Image下拉框,
拉開就會看到所有已經載入好的圖片,
選擇你要的圖片.運行程式即可看到.
參考了2篇文章:
http://www.vcer.net/1046595482643.html
http://www.cnblogs.com/mingzi/archive/2008/07/19/1246792.html