1.首先導入bmp格式的位圖。如果沒有可以用Photoshop轉換一下。假設導入的資源ID號為IDB_BITMAP1。
2.添加windows消息處理OnPaint(),在else里面添加下列函數。注意先把基類的CDialog::OnPaint()注釋掉,接着按如下步驟處理:
CPaintDC dc(this);
CRect rect;
GetDlgItem(IDC_STATIC_NAME)->GetWindowRect(rect); //這里的IDC_STATIC_NAME是你要添加位圖的范圍。
ScreenToClient(rect); //將屏幕坐標轉換成客戶區坐標
CDC dcMem;
dcMem.CreateCompatible(&dc); //創建兼容DC
CBitmap bmBackGround;
bmBackGround.LoadBitmap(IDB_BITMAP1); //載入位圖
BITMAP bitmap;
bmBackGround.GetBitmap(&bitmap); //獲取位圖信息
CBitmap *pbitold=dcMem.SelectObject(&bmBackGround); //將位圖選入DC中
StretchBlt(rect.TopLeft().x,rect.TopLeft().y,rect.Width(),rect.Height(),&dcMem,0,0,bitmap.Width,
bitmap.Height,SRCCOPY); //以stretchBlt的方式添加位圖到相應區域
dcMem.SelectObject(pbitold);
由於我們在限定位圖范圍的時候添加了一個 static的控件,要想讓它不被顯示出來,只需要在它的屬性框中將可見這一項去掉即可。
以后要修改位圖位置的時候,只需要修改控件的位置就可以了。