我在做一个MFC项目,卡在视频显示上,视频在父子窗体上显示,父子窗体分别接收两路不同的视频流,在显示视频时子窗体不停闪烁,如下图:
已经采取的方法有:
1. OnEraseBkgnd
BOOL MediadataOCXDialog::OnEraseBkgnd(CDC* pDC)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
return TRUE;
}
2.设置父窗体刷新时不重绘子窗体
CWnd *_mWnd = AfxGetMainWnd();
HWND _hHwnd = _mWnd->m_hWnd;
LONG_PTR Style = ::GetWindowLongPtr(_hHwnd, GWL_STYLE); //获取父窗体属性
Style = Style | WS_CLIPCHILDREN; //父窗口不再重绘子窗口覆盖部分
::SetWindowLongPtr(_hHwnd, GWL_STYLE, Style);//重置父窗体属性
3.创建双缓冲区
CDC MemDC;
CDC* pDC;
cv::Mat _pic1;
_pic1 = m.clone();
CRect rect;
_g_pWnd->GetDlgItem(IDC_STATIC)->GetClientRect(&rect);
MemDC.CreateCompatibleDC(pDC);
_pic1.create(cv::Size(w, h), CV_8UC3);
MemDC.SelectObject(&_pic1); //将位图选进内存中
pDC->BitBlt(rect.left, rect.top, rect.Width(), rect.Height(), &MemDC, 0, 0, SRCCOPY);
注:创建的缓冲区视频不显示
请问这种闪烁该怎么处理。