close

 

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

arrow
arrow
    全站熱搜
    創作者介紹
    創作者 me1237guy 的頭像
    me1237guy

    天天向上

    me1237guy 發表在 痞客邦 留言(0) 人氣()