void Cvdpict1Dlg::OnBnClickedButton1()
{
// TODO: 在此加入控制項告知處理常式程式碼
CDC* myPictDC = m_pict.GetDC(); // 人機(GUI)上的PIC
上面這一行有更簡單的寫法
CClientDC myPictDC(&m_pict); // 傳入m_pict的記憶體位置用來初始化CClientDC物件, 即myPicDC
CDC workDC; // 作業用DC
CBitmap myBMP;
CRect myRect;
m_pict.GetClientRect( myRect ); // 取得目前人機(GUI)上PIC的大小
myPictDC->FillSolidRect(myRect, RGB(255, 255, 255)); // 用白色填滿全部區域
//m_pict.GetDC()->FillSolidRect(myRect, RGB(0, 255, 0));
myBMP.LoadBitmapW( IDB_BITMAP1); // 讀取圖片
workDC.CreateCompatibleDC( myPictDC ); // 創建一塊與myPictDC有共通性之記憶體DC
CBitmap* oldBMP = workDC.SelectObject( &myBMP ); // 載入圖片至workDC記憶體, 並回傳oldBMP
myPictDC->BitBlt(0, 0, 256, 256, &workDC, 0, 0, SRCCOPY);// myPictDC複製workDC(記憶體上的圖片)
workDC.SelectObject( oldBMP ); // 恢復原本的點陣圖
m_pict.ReleaseDC( myPictDC); // 進行釋放
}
原始程式: vdpict1
Youtube操作展示: 2013-03-29_MFC載入BMP
留言列表