请教一个纠结了几天的问题:环境VS2008,C++.在一个picture控件上显示视频,然后再这个视频窗口上绘图,绘的图狂闪。不知道怎么解决。请高手指教。我把视频显示和绘图是写在timer里面的。按照我的想法是,把图绘在控件上,只要不调用刷新函数,此picture控件显示的还是原来的图形,只有调用Invalidate(UpdateData)才会刷新。但是现在窗口才狂闪。不知道怎么解决。 不知道有没有做机器视觉方面的高手能帮帮忙
解决方案 »
- 百分求救!!!
- 如何在预编译中根据不同操作系统,包含不同的头文件
- 动态按纽,图标大小问题
- 如何在Edit控件中的内容被改变时修改Edit的背景色,OnCtlColor怎么响应?它的三个参数怎么写呀?
- 在VC中使用ADO连接SQL,提示无效指针是为什么?
- 本人正在做一个简单图象(主要包含有直线、圆、矩形等)编辑系统,有些问题请教大家,希望给点思路,谢谢!
- ******大家帮忙看段代码,完成端口的,接收有问题,在线等。。。******
- 求助:为何消息根本没有响应?
- 快捷键的问题
- CreateProcess 隐藏窗口启动一个进程?
- CFormView 相关的问题,大家帮忙看一下。
- 创建FromView到属性页出错没效果
不知道你是怎么刷的,是将数据先保存下来,然后再在OnPaint里面刷的,还是直接获得picture控件的DC,在这个DC上刷的,如果是后者就不需要调用Invalidate函数。还有如果非要用的话,还是建议使用InvalidateRect这个函数,刷新局部,避免全局刷新导致的闪烁论坛签名======================================================================slshelly:你好!
截至 2011-03-29 10:04:22 前:
你已发帖 27 个, 未结贴 1 个;
结贴率为: 96.30%
Left,
Top,
Width,
Height,
0,
0,
Width,
Height,
pImagePtr,
(PBITMAPINFO)&BitmapInfo,
DIB_RGB_COLORS,
SRCCOPY);
hDC就是控件的DC ,BitmapInfo就是图像信息
void Draw(HDC hDC)
{
::SetStretchBltMode(hDC,COLORONCOLOR);//该函数可以设置指定设备环境中的位图拉伸模式::StretchDIBits(hDC,//
Left,
Top,
Width,
Height,
0,
0,
Width,
Height,
pImagePtr,
(PBITMAPINFO)&BitmapInfo,
DIB_RGB_COLORS,
SRCCOPY); ::MoveToEx(hDC,100,100,NULL);
::LineTo (hDC,500,100);
::LineTo(hDC,500,500);
::LineTo(hDC,100,500);
::LineTo(hDC,100,100);
}在timer里调用这个函数,显示窗口就会闪烁,我知道是因为
::MoveToEx(hDC,100,100,NULL);
::LineTo (hDC,500,100);
::LineTo(hDC,500,500);
::LineTo(hDC,100,500);
导致的,但是我不知道怎么解决?
::LineTo(hDC,100,100);