如何刷新一个自己新建的窗口 需要在自己新建的一个类里面不断的刷新这个窗口,这个窗口用于显示采集到的图像,这个新建窗口函数是从网上找的,在dialog旁边开个窗口。运行程序后,选择相应按钮启动这个窗口,实时的采集图像。但需要不断的刷新这个窗口,咋个操作啊。。 PS:不知道我表达清楚没有。。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用这个函数可以使窗口重绘 估计会闪Invalidate()还是在OnPaint()函数里处理把 使用双缓冲技术,现在内存dc画好图,然后使用bitblt绘制在窗口中。 你做的是不是类似视频扑捉的程序?可以用Invalidate(false);在不刷新背景的情况下整屏bitblt是不会闪烁的。 直接在窗口的Onpaint中画你的图像,这样就会实时刷新 在OnPaint()里面绘图,当窗口遮挡、缩放等发生时能自动被动刷新。内部数据发生了变化需要更行图像时用Invalidate(FALSE)函数,主动刷新。 这个就是个视频捕捉的程序。用的方法是创建一个线程(无限循环) 每一次循环采集一张图像 ,这时需要刷新显示图像的那个窗口,来实现视频的过程。我想知道怎么刷新那个窗口。用OnPaint试了不得行。 我这个程序就是内部数据发生变化,然后去更新。我要在程序采集的类里面去实现刷新。用Invalidate(FALSE)好像不行 这个方法一般是可以的,你用的是directShow么?要先看清楚你的实现模型,一般线程做采集,然后通过消息通知窗口去主动的更新自己,用的就是Invalidate(hdc,NULL,FALSE); 没用DirectShow,能给说下怎么给窗口发送消息去更新吗PS:这其实就是我最开始想问的 HWND hwnd = ::FindWindow("相机采集窗口", NULL);CRect rect;GetClientRect(hwnd,&rect);InvalidateRect(hwnd,rect,FALSE);用的这种方法,闪的太厉害。。 开始写了个测试程序在DOC里面用 // // Reset the view. // POSITION pos = GetFirstViewPosition(); while( pos != NULL ) { CFlyCaptureSdiView* pView = (CFlyCaptureSdiView*)GetNextView( pos ); InvalidateRect( pView->GetSafeHwnd(), NULL, FALSE ); }区别是这个只有一个窗口,没有出现闪烁 ,显示正常。 关于RegSetValueEx API函数请教 请问我怎么获取网页上的验证码图片保存到本地,然后在我程序中显示出来 关于拆分试图 Windows 核心编程源代码 急需解决的问题!!!! 求图像裁减的VC源码,马上给分! dll中可以调用windows内部命令吗? 如何得到一个指向一对话框的指针 请问应该怎样打开和保存一个文件? 求解答 计算机人员出国留学发展 怎么把16进制数据转化为字符串 vc mscomm控件 小白问题 应该很简单请指教下 我在线等
Invalidate()还是在OnPaint()函数里处理把
现在内存dc画好图,
然后使用bitblt绘制在窗口中。
内部数据发生了变化需要更行图像时用Invalidate(FALSE)函数,主动刷新。
我想知道怎么刷新那个窗口。用OnPaint试了不得行。
我要在程序采集的类里面去实现刷新。用Invalidate(FALSE)好像不行
这个方法一般是可以的,你用的是directShow么?
要先看清楚你的实现模型,一般线程做采集,然后通过消息通知窗口去主动的更新自己,用的就是
Invalidate(hdc,NULL,FALSE);
PS:这其实就是我最开始想问的
HWND hwnd = ::FindWindow("相机采集窗口", NULL);
CRect rect;
GetClientRect(hwnd,&rect);
InvalidateRect(hwnd,rect,FALSE);用的这种方法,闪的太厉害。。
// Reset the view.
//
POSITION pos = GetFirstViewPosition();
while( pos != NULL )
{
CFlyCaptureSdiView* pView = (CFlyCaptureSdiView*)GetNextView( pos );
InvalidateRect( pView->GetSafeHwnd(), NULL, FALSE );
}区别是这个只有一个窗口,没有出现闪烁 ,显示正常。