给单文档MFC窗口加背景图片,背景图2M多,设置初始窗口最大化,但点了右上角的最大化/还原按钮之后,背景图片不清晰了,是什么问题啊,最大化的时候满清楚的。

解决方案 »

  1.   

    ::SetStretchBltMode(你的显示DC.GetSafeHdc(),HALFTONE);最好上下代码。
      

  2.   

    图片缩放啦?
    用BilBit试试
      

  3.   

    OnPaint函数
    void CFaceView::OnPaint() 
    {
    CPaintDC dc(this); // device context for painting
    CBitmap bmp;
    bmp.LoadBitmap(IDB_BITMAP1);
    BITMAP bmpInfo;
    bmp.GetBitmap(&bmpInfo);
    CDC dcMemory;
    dcMemory.CreateCompatibleDC(&dc);

    CBitmap *pOldBmp=dcMemory.SelectObject(&bmp);
    CRect wndRt;
    this->GetClientRect(&wndRt);
    dc.StretchBlt(0, 0, wndRt.Width(), wndRt.Height(), &dcMemory, 0, 0, bmpInfo.bmWidth, bmpInfo.bmHeight, SRCCOPY);
    dcMemory.SelectObject(pOldBmp);
    // Do not call CFormView::OnPaint() for painting messages
    }
    新手还不会插入图片,见笑了…………窗口最大化还原之后,图片模糊了,像那种像素很低图片最大化后的效果。哪里出问题了呢?
      

  4.   

    缩放失真。设置缩放模式就可以了. SetStretchBltMode(HALFTONE)
    2楼已经给出答案了。lz都不试一下的吗
      

  5.   

    CRect wndRt;
    this->GetClientRect(&wndRt);
    dc.SetStretchBltMode(HALFTONE);   //设置拉伸模式后,肯定可以解决失真的现象,没解决说明这个函数
                                             //没起作用;
     dc.StretchBlt(0, 0, wndRt.Width(), wndRt.Height(), &dcMemory, 0, 0, bmpInfo.bmWidth, bmpInfo.bmHeight, SRCCOPY); 
    dcMemory.SelectObject(pOldBmp);