大浪淘沙

大浪淘沙,吹尽狂沙始到金!

博客园 首页 新随笔 联系 订阅 管理

多次打开bmp文件!请大家给予指正其中的不合适的地方!
BOOL LoadBitmap(LPCTSTR szFilename , CBitmap& bitmap)
{
    ASSERT(szFilename);
    if(bitmap.m_hObject)
        bitmap.DeleteObject();
 
    HBITMAP hBitmap = NULL;
    hBitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(), szFilename, IMAGE_BITMAP, 0, 0,
        LR_LOADFROMFILE | LR_CREATEDIBSECTION | LR_DEFAULTSIZE);
    return bitmap.Attach(hBitmap);
}

void CSysSetView::OnDraw(CDC* pDC)
{
 CSysSetDoc* pDoc = GetDocument();
 ASSERT_VALID(pDoc);
 // TODO: add draw code for native data here
 
 if(m_bitmap.m_hObject)
    {
        BITMAP bm;
        GetObject(m_bitmap.m_hObject , sizeof(bm) , &bm);
        CSize size(bm.bmWidth , bm.bmHeight);
  
        CRect rectClient;
        GetClientRect(&rectClient);
        CDC memDC;
        memDC.CreateCompatibleDC(pDC);
        memDC.SelectObject(&m_bitmap);
  
        CPoint ptStart(0 , 0);
        if(rectClient.Width() > size.cx)
            ptStart.x = (rectClient.Width() - size.cx) / 2;
        if(rectClient.Height() > size.cy)
            ptStart.y = (rectClient.Height() - size.cy) / 2;
        pDC->BitBlt(ptStart.x , ptStart.y , size.cx , size.cy , &memDC  , 0 , 0 , SRCCOPY);

    }
 
}

posted on 2004-06-30 23:01  大浪淘沙  阅读(1951)  评论(0编辑  收藏  举报