/*初始化VFW设备*/ void CMainFrame::OnVfwInitvfw() { // TODO: 在此添加命令处理程序代码 DWORD fsize; // 创建视频窗口 if(!m_wndSource.CreateEx(WS_EX_TOPMOST,NULL, _T("Source"),WS_OVERLAPPED|WS_CAPTION, CRect(0,0,352,288),NULL,0)) return; m_hWndCap = capCreateCaptureWindow(_T("Capture Window"),WS_CHILD|WS_VISIBLE, 0,0,352,288, m_wndSource.m_hWnd,0); //m_wndSource.ShowWindow(SW_SHOW); // 注册回调函数 capSetCallbackOnError(m_hWndCap,(FARPROC)ErrorCallbackProc); capSetCallbackOnStatus(m_hWndCap,(FARPROC)StatusCallbackProc); capSetCallbackOnVideoStream(m_hWndCap,(FARPROC)VideoCallbackProc); // 连接视频设备 capDriverConnect(m_hWndCap,0); //(HWND m_hWndCap, int index);//index : 0--9 // 获取驱动器的性能参数 capDriverGetCaps(m_hWndCap,&m_caps,sizeof(CAPDRIVERCAPS)); if (m_caps.fHasOverlay) capOverlay(m_hWndCap,TRUE); // 设置预览速率开始预览 capPreviewRate(m_hWndCap,1000/25); capPreview(m_hWndCap,bPreview); fsize = capGetVideoFormatSize(m_hWndCap); capGetVideoFormat(m_hWndCap, lpbiIn, fsize); AfxMessageBox(_T("初始化成功!")); }