描述:
1、实现视频采集,过程:创建一个对话框,然后在上面放一个picture控件作为视频显示窗口。
已经实现,显示也很正常
2、按下面方法做成ActiveX控件。
用MFC ActiveX ControlWizard创建一个ActiveX控件,然后再把视频采集的对话框加入
并生成相应的控制类class CCaptureDlg : public CDialog.接着在控件类CCaptureCtl中加入一个
CCaptureDlg的成员mCaptureDlg,以及OnCreate(WM_CREATE)
然后做下面的修改
int CCaptureCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
mCaptureDlg.Create(IDD_CAPTURE_DIALOG, this);
return 0;
}
void CCaptureCtrl::OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
mCaptureDlg.MoveWindow(rcBounds, TRUE);
}
这些应该没有错。但为什么控件显示窗口就是就是黑屏,大家帮忙看看啊。
另外控件的外观能不能直接做成picture控件的形式,作为视频显示用,那应该怎么做呢,大家给点提示啊。
就是没分,要有全给了。
搞了几天没点进展,急啊,救救我。
解决方案1:
up
解决方案2: int CCaptureCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;
mCaptureDlg.Create(IDD_CAPTURE_DIALOG, this);
mCaptureDlg.ShowWindow(SW_SHOW);
return 0;
}
void CGodVideoCtrl::OnSize(UINT nType, int cx, int cy)
{
COleControl::OnSize(nType, cx, cy);
mCaptureDlg.SetWindowPos(0,0,0,cx,cy,SWP_NOMOVE);
}
void CCaptureCtrl::OnDraw(CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
}
如果不用控件是不是也是黑的?