CRect rect ;
GetClientRect( &rect ) ;
CRect imageRect ;CImage *image = new CImage ;
image->LoadFromResource(AfxGetInstanceHandle()/*theApp.m_hInstance*/ , IDR_CIMAGE1 ) ;imageRect.left = 0 ;
imageRect.top = 0 ; 
imageRect.bottom = image->GetHeight() ;
imageRect.right = image->GetWidth() ;image->Draw( pDC->m_hDC , rect ,  imageRect ) ;
......在LoadFromResourse() 处中断,theApp是外部变量,即APP文件中定义的那个。两个获得实例句柄的方法都试过。这些是在 OnEraseBkgnd()中。请大侠帮我看看,那个函数处为什么会中断?可以的话顺便教教小弟怎么是JPG图像显示为背景的时候不会失真。

解决方案 »

  1.   

    LoadFromResource(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_CIMAGE1));
      

  2.   

    cdpc0202
    你的那个跟我的是一样的,帮我看看我代码是不是别的地方有问题?解决了马上给分!别的我什么都没做,就添加了那个OnEraseBkgnd() ;
    CImage *image = new CImage ;
    image->LoadFromResource(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDR_CIMAGE1));
    imageRect.left = 0 ;
    imageRect.top = 0 ; 
    imageRect.bottom = image->GetHeight() ;
    imageRect.right = image->GetWidth() ;
    pDC->SetStretchBltMode( STRETCH_HALFTONE ) ;
    image->Draw( pDC->m_hDC , rect ,  imageRect ) ;
    delete image ;
      

  3.   


    BITMAP m_bitmap;
    CImage image;
    image.LoadFromResource(AfxGetInstanceHandle(),uiImageIDU);
      CBitmap *bitmapImage;
      HBITMAP bitmap =image.Detach();
    bitmapImage= CBitmap::FromHandle(bitmap);
    bitmapImage->GetObject(sizeof(m_bitmap),&m_bitmap);
    ...
        m_rectBtn.top =0;m_rectBtn.left =0;
        m_rectBtn.right = m_bitmap.bmWidth; m_rectBtn.bottom =m_bitmap.bmHeight;
    ...
    m_ImageList.Add( bitmapImage ,bitmapImage);
      

  4.   

    应该是局部变量失效的原因。
    将image改为类成员变量。以下语句不用每次调用,放入到OnInitialUpdate这样的地方:
    CImage   *image   =   new   CImage   ; 
    image-> LoadFromResource(AfxGetInstanceHandle(),   MAKEINTRESOURCE(IDR_CIMAGE1)); 
    delete   image;放入到析构函数。大致如上。
      

  5.   

    msdn上说CImage中的LoadFromResource只能加载BITMAP格式的