本帖最后由 VisualEleven 于 2013-08-20 15:09:29 编辑

解决方案 »

  1.   

    你要加载jgp,但是用的 HBITMAP hbitmap;
      

  2.   

    我试了,用ImageCImage image_check; 
    if(image_check.Load(L"E:\\psb.jpg"))
    {
    MessageBox(L"图片已损坏",0,0);
    return;
    }
    CRect rect;
    CStatic m_CheckPic;
    m_CheckPic.GetClientRect(&rect);  
    CDC* pDC= m_CheckPic.GetWindowDC();
    pDC->SetStretchBltMode(STRETCH_HALFTONE);  
    image_check.Draw(pDC->m_hDC,rect); ReleaseDC( pDC );
    pDC=NULL;
    image_check.Destroy();
      

  3.   


    你这样做 应该把加载和画图分开
    画图应该放在onpaint中执行
      

  4.   

    .h
    CBitmap m_bitmap;
    void LoadJpg(CBitmap &mBitmap,CString path);.cpp
    void XXX::LoadJpg(CBitmap &mBitmap,CString path)
    {
    CImage pic;
    pic.Load(path);
    CDC *pDC = GetDC();
    CDC memDC;
    memDC.CreateCompatibleDC(pDC);
    mBitmap.CreateCompatibleBitmap(pDC,100,100);
    CBitmap *OldBitmap =memDC.SelectObject(&mBitmap);
    pic.Draw(memDC.m_hDC,0,0,100,100,0,0,100,100); memDC.SelectObject(OldBitmap);
    DeleteDC(memDC);
    OldBitmap = NULL;
    }BOOL XXX::OnInitDialog()
    {
    LoadJpg(m_bitmap);
    ((CStatic *)GetDlgItem(IDC_STATIC_PIC))->SetBitmap(m_bitmap);
    }