是一个MFC对话框项目。
通过DirectShow获取USB摄像头视频,显示在picture control里面。
现在用GetHDC(),在视频的surface上画圆,显示在视频的上面。但是,当移动窗口,或者最大最小化窗口时,圆消失了。目前尝试在OnPaint里面调用画图函数,但是在视频上仍然看不到圆,如果不显示视频,圆才会一直显示
在picture control上面,请问怎么回事?另外:怎么实现让圆在视频上面移动?是调用重绘函数,改变圆的位置吗?
通过DirectShow获取USB摄像头视频,显示在picture control里面。
现在用GetHDC(),在视频的surface上画圆,显示在视频的上面。但是,当移动窗口,或者最大最小化窗口时,圆消失了。目前尝试在OnPaint里面调用画图函数,但是在视频上仍然看不到圆,如果不显示视频,圆才会一直显示
在picture control上面,请问怎么回事?另外:怎么实现让圆在视频上面移动?是调用重绘函数,改变圆的位置吗?
你播放视频时picture control被一层dshow子窗口覆盖了呀,你显示在picture control上面的
圆自然看不到了
但是,用按钮调用画图函数,圆就可以显示在视频的上面;我在Onpaint里面调用画图函数的时候,就被覆盖了。
为什么?这个要怎么解决呢?
摄像头视频已经可以显示到picture control上了。现在是画图。
如果上面的方法不对,那该用什么?本人系菜鸟。
->你怎么知道视频窗口什么时候刷新?
就是对窗体进行操作或者窗体被覆盖的时候,比如弹出任务管理器(个人理解)。
一般做法是在视频上建个透明的窗口然后在上面画文字实现
复杂点的话直接在视频上画 这个好像要自己实现个filter,在transfilter里画
现在的状态是,只要不动改窗口,显示就正常。我是直接在视频的主页面上画的。如果用filter,麻烦hurryboylqs说详细点,或者show出关键代码示例也可以,谢谢了。