当窗口大小变化时,怎么让布画外的图重绘? 还要让程序尽量简洁。

voidCdisplayViaGDIView::createDC(CDC*pdc){bitmap.CreateCompatibleBitmap(pdc,1000,3000... void CdisplayViaGDIView::createDC(CDC* pdc)
{
bitmap.CreateCompatibleBitmap(pdc, 1000, 3000);
MemDC.CreateCompatibleDC(pdc);
pOldBmp = MemDC.SelectObject(&bitmap);
MemDC.FillSolidRect(0,0,1000,3000,RGB(255,255,255));

pdc->BitBlt(0,0,1000,3000, &MemDC,0,0,SRCCOPY);

}
void CdisplayViaGDIView::OnDraw(CDC* /*pDC*/)
{
/*CRect rect;
GetClientRect(&rect);
GetDC()->FillSolidRect(&rect,RGB(255,255,255));*/

GetDC()->StretchBlt(rect.left,rect.top,rect.left+1000,rect.top+3000,&MemDC,0,0,1000,3000,SRCCOPY); //重绘超出范围的很难看。
// TODO: add draw code for native data here
}
是应该用pDC. 另外我把 "风魂永恒" 的代码放在消息响应函数中了。
void CdisplayViaGDIView::OnSize(UINT nType, int cx, int cy)
{
CScrollView::OnSize(nType, cx, cy);

// TODO: Add your message handler code here
GetClientRect(&rect);
InvalidateRect(&rect, TRUE);
}
还是不行。
展开
 我来答
高尾山
2009-06-07 · TA获得超过677个赞
知道小有建树答主
回答量:690
采纳率:0%
帮助的人:623万
展开全部
问题没太读懂。反问一下,OnDraw(CDC* /*pDC*/)中的pDC为什么不用,而另用GetDC()。有什么特别的打算吗?
风魂永恒
2009-06-07 · 超过13用户采纳过TA的回答
知道答主
回答量:66
采纳率:0%
帮助的人:0
展开全部
void InvalidateRect(
LPCRECT lpRect,
BOOL bErase = TRUE
);
或者
Invalidate、、InvalidateRgn
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式