VC中单文档中设计一个图片浏览器 浏览多幅 现在出现难问题了 图片能显示但是窗口最大化后图片消失

时间:2022-06-02 00:20:11
VC中单文档中设计一个图片浏览器 浏览多幅 现在出现难问题了 图片能显示但是窗口最大化后图片消失  或者滚动滚动条图片也消失 请高手帮助  部分代码如下:
void CRightView::OnPaint()          //显示图片的代码
{
CPaintDC dc(this); 
OnPrepareDC(&dc);
OnDraw(&dc);
this->OnDraw(this->GetDC());
if (IsIconic())
{
    }
else
{
if (m_hBmp!=NULL)
{   UpdateData(FALSE);
CDC* pDC=GetDC();
CBitmap bmp;
bmp.Attach(m_hBmp);
CDC memDC;
memDC.CreateCompatibleDC(pDC);
memDC.SelectObject(&bmp);
BITMAP BitInfo;
bmp.GetBitmap(&BitInfo);
int x=BitInfo.bmWidth;
int y=BitInfo.bmHeight;
CBrush brush(RGB(0,0,0));
int i=m_T1;int j=m_T2;    //m_T1和m_T2是变化的 为了显示多幅图片        
CRect rc(i,j,150+i,150+j);
pDC->FrameRect(rc,&brush);
pDC->SetStretchBltMode(STRETCH_HALFTONE); 
pDC->StretchBlt(rc.left,rc.top,rc.Width(),rc.Height(),&memDC,0,0,x,y,SRCCOPY);
bmp.Detach();
memDC.DeleteDC();
}
UpdateWindow();
}


}

void CRightView::OnDraw(CDC* pDC)  //重绘的代码
{
CDocument* pDoc = GetDocument();
ASSERT_VALID(pDoc); 
if(!pDoc) 
return;
}

3 个解决方案

#1


在OnPaint里要用CPaintDC
不要用其他别的dc

#3


您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法

#1


在OnPaint里要用CPaintDC
不要用其他别的dc

#2


#3


您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法