MFC 添加位圖帶指定對話框指定位置


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的控件,要想讓它不被顯示出來,只需要在它的屬性框中將可見這一項去掉即可。

以后要修改位圖位置的時候,只需要修改控件的位置就可以了。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM