CScorllView 在滚动的时候 绘图为什么会成这样?

ziplj 2009-10-28 11:31:17
如图一 原始图片

拖动滚动条以后 就会出现混乱的状况
如图二


图是利用GDI+ 自己绘出来的 请问这种状况如何解决?
...全文
238 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
ziplj 2009-10-28
  • 打赏
  • 举报
回复
帖子沉的太快了 问题还没解决呢???
ziplj 2009-10-28
  • 打赏
  • 举报
回复
不大可能是刷新问题吧... 而且 我最小化 在最大化后 发现滚动条挪动了位置 而图像还是没有变位置 还是最开始的地方
东方之珠 2009-10-28
  • 打赏
  • 举报
回复
可能是刷新的问题。
ziplj 2009-10-28
  • 打赏
  • 举报
回复
嗯 图片乱了 看不见发上来的图片吗 ?
拖动的时候出现类似于残影的现象
东方之珠 2009-10-28
  • 打赏
  • 举报
回复
怎么回事?乱了。
ziplj 2009-10-28
  • 打赏
  • 举报
回复
测试了一下 可以用 谢谢
MoXiaoRab 2009-10-28
  • 打赏
  • 举报
回复
rect.bottom += 1980;是为了避免出现黑色无效区域而增加的一个值
MoXiaoRab 2009-10-28
  • 打赏
  • 举报
回复
等等,你这个是派生于CScrollView的吧,我记得在OnPaint里面还要进行下坐标转换的

void CYourView::OnPaint()
{
CPaintDC dc(this);

CRect rect;
GetClientRect(rect);
DocToClient(rect);
...
}



void CYourView::DocToClient(CRect& rect)
{
CClientDC dc(this);
OnPrepareDC(&dc, NULL);
dc.LPtoDP(rect);
rect.NormalizeRect();
rect.bottom += 1980;
//rect.top -= 198;
}
ziplj 2009-10-28
  • 打赏
  • 举报
回复
双缓冲只是怕闪烁 而我这个就不是闪烁的相关问题 而是我挪动滚动条以后 视图就不滚动
ziplj 2009-10-28
  • 打赏
  • 举报
回复
这个就不是双缓冲的问题 而是图像乱了
MoXiaoRab 2009-10-28
  • 打赏
  • 举报
回复
双缓冲贴图试过了?也不行?
ziplj 2009-10-28
  • 打赏
  • 举报
回复
你的这个方法测试过了 没什么效果 还是有残影
MoXiaoRab 2009-10-28
  • 打赏
  • 举报
回复
要不,OnUpdate重载了没?像这样


void CaaaView::OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint)
{
// TODO: Add your specialized code here and/or call the base class
// TODO: Add your specialized code here and/or call the base class
CScrollView::OnUpdate(pSender,lHint,pHint);
CSize sizeTotal;

sizeTotal.cx =100
sizeTotal.cy =200
SetScrollSizes(MM_TEXT, sizeTotal);
}


ziplj 2009-10-28
  • 打赏
  • 举报
回复
加分了.... 哎 分低都没人来...
ziplj 2009-10-28
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 trs_guoyunhui 的回复:]
拖动滚动条后需要根据滚动条位置重新计算贴图的坐标
[/Quote]
靠谱... 但是位置计算不知道该如何进行 位置信息怎么传进去呢?
trs_guoyunhui 2009-10-28
  • 打赏
  • 举报
回复
拖动滚动条后需要根据滚动条位置重新计算贴图的坐标

15,979

社区成员

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

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