关于MFC窗口重绘的问题

Becomly 2010-12-11 09:59:48
请问能够检测到窗口的全部重绘与部分重绘吗?
因为我需要获得窗口的DC,当全部重绘时,获得的dc是正确的,当部分重绘时,获得的dc会有我贴的图这样获得的dc是错误,请问有什么办法解决
...全文
169 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2011-01-03
  • 打赏
  • 举报
回复
您好
我是本版版主
此帖已多日无人关注
请您及时结帖
如您认为问题没有解决可按无满意结帖处理
另外本版设置了疑难问题汇总帖
并已在版面置顶
相关规定其帖子中有说明
您可以根据规定提交您帖子的链接
如您目前不想结帖只需回帖说明
我们会删除此结帖通知

见此回复三日内无回应
我们将强制结帖

相关规定详见界面界面版关于版主结帖工作的具体办法
schlafenhamster 2010-12-11
  • 打赏
  • 举报
回复
下载我的“ScrollBitmap.rar”
注意:
else
{// typical way painting in dialog.
CPaintDC dc(this);
m_Pic.Invalidate(FALSE);// do not erase background!
dc.BitBlt(m_rcPicture.left,m_rcPicture.top,m_rcPicture.Width(),
m_rcPicture.Height(),&m_dcMem, m_Sourcex, m_Sourcey,SRCCOPY);
// others
CDialog::OnPaint();
}
Becomly 2010-12-11
  • 打赏
  • 举报
回复
创建窗口时获得的
CClientDC dc(this);
ClearDC.m_hDC = ::CreateCompatibleDC(dc.m_hDC);
HBITMAP hBitmap = ::CreateCompatibleBitmap(dc.m_hDC,cx,cy);
SelectObject(ClearDC.m_hDC,hBitmap);
::BitBlt(ClearDC.m_hDC,0,0,cx,cy,dc.m_hDC,0,0,SRCCOPY);
向立天 2010-12-11
  • 打赏
  • 举报
回复
ClearDC你怎么获得的
Becomly 2010-12-11
  • 打赏
  • 举报
回复
ClearDC是一个内存dc,用来保存没有画过图的窗口dc来的,
就是在这个窗口上有个子窗口出现并一度子窗口的话,就会出现部分重绘,从而导致取到的ClearDC不是所要取得的
向立天 2010-12-11
  • 打赏
  • 举报
回复
我还是没弄明白
ClearDC是哪来的
你要干什么
不过调用Invadidate还是InvalidateRect
dc上的内容应该是一样的
Becomly 2010-12-11
  • 打赏
  • 举报
回复
我在OnPaint()上的代码是这样的
CPaintDC dc(this);
INT cx = GetSystemMetrics(SM_CXSCREEN),cy = GetSystemMetrics(SM_CYSCREEN);
::BitBlt(ClearDC.m_hDC,0,0,cx,cy,dc.m_hDC,0,0,SRCCOPY);
PainOP->MapMemDC(&dc);
因为我需要取得通过ClearDC来保存没有画过图的dc,
如果部分重绘的话我取得的ClearDC是已经有我画过的图的了
向立天 2010-12-11
  • 打赏
  • 举报
回复
没明白你什么意思
你想实现什么需求
具体代码怎么写的
Becomly 2010-12-11
  • 打赏
  • 举报
回复
那位能帮帮忙?麻烦了
向立天 2010-12-11
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 becomly 的回复:]
创建窗口时获得的
CClientDC dc(this);
ClearDC.m_hDC = ::CreateCompatibleDC(dc.m_hDC);
HBITMAP hBitmap = ::CreateCompatibleBitmap(dc.m_hDC,cx,cy);
SelectObject(ClearDC.m_hDC,hBitmap);
::BitBlt(ClearDC.m_hD……
[/Quote]你在窗口创建时获得位图
那子窗口移动又怎么会影响到它呢
这和刷新有什么关系呢
Sou2012 2010-12-11
  • 打赏
  • 举报
回复
没听过ClearDC
hjfhero 2010-12-11
  • 打赏
  • 举报
回复
http://www.vckbase.com/document/viewdoc/?id=1612 可以参考下。。

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧