请问,如何在鼠标移动时,防止图像闪烁?

huanglin523 2009-03-11 10:17:25
请问,如何在鼠标移动时,防止图像闪烁?
...全文
123 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
huanglin523 2009-03-16
  • 打赏
  • 举报
回复
结贴了,给分完毕!
liusichen_0 2009-03-13
  • 打赏
  • 举报
回复
支持,双缓冲,C#中有些控件有这个属性
littlefangMFC 2009-03-13
  • 打赏
  • 举报
回复
用双缓冲就可以啊,先把图画在内存中然后贴到界面上...
bitwwzhang130 2009-03-12
  • 打赏
  • 举报
回复
用内存DC,我刚做了一个鼠标拖动在对话框上画线的程序。
将要画在屏幕上的图先画到内存DC中,然后一次贴到屏幕上,这样就可以避免闪烁了
hemiya 2009-03-12
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 utin431 的回复:]
开双buffer,这要看你的开发环境了。
设置DoubleBuffer的属性值为真。
[/Quote]
呵呵这个是cbuilder的,vc下没这个,只能自己写代码。
utin431 2009-03-12
  • 打赏
  • 举报
回复
开双buffer,这要看你的开发环境了。
设置DoubleBuffer的属性值为真。
Tinary3v0 2009-03-11
  • 打赏
  • 举报
回复
使用内存绘图:
void C**View::OnMouseMove(UINT nFlags, CPoint point) 
{
CDC *pdc=this->GetDC();
CDC MenDC;
CBitmap bm;

CRect rt;
GetClientRect(&rt);
MenDC.CreateCompatibleDC(pdc);
bm.CreateCompatibleBitmap(pdc,rt.Width(),rt.Height());
MenDC.SelectObject(&bm);
//-------------------------------------------------------------------
MenDC.FillSolidRect(0,0,rt.Width(),rt.Height(),RGB(255,255,255));//用白色清屏

MenDC.MoveTo() //在这里绘图
MenDC.LintTo()
//-------------------------------------------------------------------
pdc->BitBlt(0,0,rt.Width(),rt.Height(),&MenDC,0,0,SRCCOPY);
MenDC.DeleteDC();
bm.DeleteObject();
ReleaseDC(pdc);
CScrollView::OnMouseMove(nFlags, point);
}
zxx_0405 2009-03-11
  • 打赏
  • 举报
回复
说的不明不白的

19,464

社区成员

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

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