设为首页 加入收藏

TOP

1.5 主窗体设计(7)
2013-10-07 13:27:02 来源: 作者: 【 】 浏览:85
Tags:1.5 窗体 设计

1.5  主窗体设计(7)

(25)处理"显卡类型"按钮的单击事件,设置显卡类型,并将设置结果保存到INI文件中。代码如下:

  1. void CCaptureDlg::OnSetting()   
  2. {  
  3.     CButton* pVGAButton = (CButton*)GetDlgItem(IDC_VGA);  
  4.     int sel = pVGAButton->GetCheck();             
    //获得VGA单选按钮的状态  
  5.     if(sel)  
  6.     {  
  7.         WritePrivateProfileString("显卡设置","
    类型","VGA","./syssetting.ini");        //将数据写入INI文件  
  8.     }  
  9.     else  
  10.     {  
  11.         WritePrivateProfileString("显卡设置",
    "类型","PCI","./syssetting.ini");        //将数据写入INI文件  
  12.     }     
  13.     MessageBox("要使显卡设置生效,需要重新启动应用程序!","提示");  
  14. }  

(26)处理对话框的WM_WINDOWPOSCHANGED消息,当对话框位置改变时,更新视频预览窗口的位置。代码如下:

  1. void CCaptureDlg::OnWindowPosChanged(WINDOWPOS FAR* lpwndpos)   
  2. {  
  3.     CDialog::OnWindowPosChanged(lpwndpos);  
  4.     for (UINT i = 0 ; i< m_DevNum; i++)         
    //根据芯片数进行循环  
  5.     {  
  6.         if (m_Frame.m_pList[i].m_ShowImage)    
    //判断是否显示图片  
  7.         {     
  8.             if (m_Frame.m_pList[i].m_Stop==psStop)  
  9.             {  
  10.                 VCAStopVideoPreview(i);                   
    //停止预览  
  11.                 VCAUpdateOverlayWnd(m_Frame.GetSafeHwnd()); 
    //更新视频预览窗口  
  12.             }  
  13.             else if (m_Frame.m_pList[i].m_Stop==psPreview)  
  14.             {         
  15.                 m_Frame.m_pList[i].Invalidate();    
    //刷新窗口  
  16.                 //更新视频预览窗口  
  17.                 VCAUpdateOverlayWnd(m_Frame.m_hWnd);   
  18.                 VCAUpdateVideoPreview(i,m_Frame.m_pList[i].m_hWnd);  
  19.             }  
  20.         }  
  21.     }  
  22. }  

(27)处理"录像"按钮的单击事件,代码如下:

  1. void CCaptureDlg::OnKinescope()   
  2. {  
  3.     if(!m_Kinescope)                             
    //判断是否录像  
  4.     {  
  5.         if(CPreView::m_CurIndex != -1)  
  6.         {  
  7.             //创建文件保存对话框  
  8.             CFileDialog fDlg(FALSE,"avi","avi_001",OFN_HIDEREADONLY  
  9.                  | OFN_OVERWRITEPROMPT,"AVI|*.avi",this);   
  10.             if (fDlg.DoModal()==IDOK)  
  11.             {  
  12.                 m_Kinescope = TRUE;  
  13.                 CString file = fDlg.GetPathName(); 
    //获得文件保存路径  
  14.                 //设置MPEG压缩的关键帧间隔,必须大于等于帧率  
  15.                 VCASetKeyFrmInterval(CPreView::m_CurIndex,250);   
  16.                 //设置MPEG压缩的位率,范围为56Kbps ~ 10Mbps  
  17.                 VCASetBitRate(CPreView::m_CurIndex,256);  
  18.                 //设置视频捕获帧率,bFrameRateReduction参数为保留参数  
  19.                 //PAL显示帧率始终为25,NTSC显示帧率始终为30  
  20.                 //PAL捕获帧率最大为25,NTSC捕获帧率最大为30  
  21.                 VCASetVidCapFrameRate(CPreView::m_CurIndex,25);  
  22.                 //设置视频捕获尺寸  
  23.                 VCASetVidCapSize(CPreView::m_CurIndex,320,240);  
  24.                 //设置MPEG4_XVID压缩的质量  
  25.                 VCASetXVIDQuality(CPreView::m_CurIndex,10,3);  
  26.                 //设置MPEG4_XVID压缩模式  
  27.                 VCASetXVIDCompressMode(CPreView::m_CurIndex,XVID_VBR_MODE);  
  28.                 BOOL ret = VCAStartVideoCapture
    (CPreView::m_CurIndex,CAP_ORIGIN_MPEG4_STREAM,  
  29.                     MPEG4_AVIFILE_CALLBACK ,file);          //开始视频捕获  
  30.                 GetDlgItem(IDC_KINESCOPE)->SetWindowText("停止录像");  
  31.             }  
  32.         }  
  33.     }  
  34.     else  
  35.     {  
  36.         m_Kinescope = FALSE;  
  37.         GetDlgItem(IDC_KINESCOPE)->SetWindowText("录像");  
  38.         VCAStopVideoCapture(CPreView::m_CurIndex);   
    //停止视频捕获  
  39.     }  
  40. }  

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇1.5 主窗体设计(9) 下一篇1.5 主窗体设计(6)

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容: