源代码

 // TODO: Add extra validation here
 int cxIcon = GetSystemMetrics(SM_CXICON);
 int cyIcon = GetSystemMetrics(SM_CYICON);
 CRect rect,rectbottom;
 GetClientRect(&rect);
 m_capturevideo.GetClientRect(&rectbottom);
 //int x = (rect.Width() - cxIcon + 1) / 2;
 //int y = (rect.Height() - cyIcon + 1) / 2;

 HWND pSome;
 m_capturevideo.GetDlgItem(ID_CAPTURE,&pSome);
 if(capDriverConnect(m_hWnd, 0))
 {
  m_capturevideo.EnableWindow(TRUE);
  MessageBox("sorry,没有检测到视频设备!",NULL,MB_OK);
 }
 else
 {
  m_capturevideo.EnableWindow(FALSE);

  m_capturewnd = capCreateCaptureWindow (
   (LPSTR) "My Capture Window", // window name if pop-up
   WS_CHILD | WS_VISIBLE,       // window style
   rect.left+5, rect.top+5, rect.right-rect.left-10 , rect.bottom-rect.top-2*(rectbottom.bottom-rectbottom.top),              // window position and dimensions
   (HWND) m_hWnd,
   (int) IDD_CAPVIDEOWnd );     // child ID
  
  for (int wIndex = 0; wIndex < 10; wIndex++)
  {
   if (!capGetDriverDescription (wIndex, m_videoDeviceName,
    sizeof (m_videoDeviceName), m_videoDeviceVersion,
    sizeof (m_videoDeviceVersion)))
   {
                return;
   }
   else
   {
    CAPDRIVERCAPS CapDrvCaps;    
    //SendMessage (m_capturewnd, WM_CAP_DRIVER_GET_CAPS,
    // sizeof (CAPDRIVERCAPS), (LONG) (LPVOID) &CapDrvCaps);
    
    // Or, use the macro to retrieve the driver capabilities.
     if(capDriverGetCaps(m_capturewnd, &CapDrvCaps, sizeof (CAPDRIVERCAPS)))
     {
      return;
     }

     CAPSTATUS CapStatus;    
     if(!capGetStatus(m_capturewnd, &CapStatus, sizeof (CAPSTATUS)))
     {
      return;
     }
    
     SetWindowPos(NULL, 0, 0, CapStatus.uiImageWidth,
      CapStatus.uiImageHeight, SWP_NOZORDER | SWP_NOMOVE);

     // Video source dialog box.
     if (CapDrvCaps.fHasDlgVideoSource)
      capDlgVideoSource(m_capturewnd);
    
     // Video format dialog box.
     if (CapDrvCaps.fHasDlgVideoFormat)
     {
      capDlgVideoFormat(m_capturewnd);
     
      // Are there new image dimensions?
      capGetStatus(hWndC, &CapStatus, sizeof (CAPSTATUS));
     
      // If so, notify the parent of a size change.
     }
    
     // Video display dialog box.
     if (CapDrvCaps.fHasDlgVideoDisplay)
      capDlgVideoDisplay(hWndC);
   }
  }
 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值