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
不要用其他别的dc
#3
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法
#1
在OnPaint里要用CPaintDC
不要用其他别的dc
不要用其他别的dc
#2
#3
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了 疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知
见此回复三日内无回应
我们将强制结帖
相关规定详见界面 界面版关于版主结帖工作的具体办法