VFW视频采集怎么设置图像的大小?

我通过下面API设置没有用,请问怎么设置呢?
capGetVideoFormat(m_hVideoWnd,&bitinfo,sizeof(BITMAPINFO));
bitinfo.bmiHeader.biHeight=rc.Height();
bitinfo.bmiHeader.biWidth=rc.Width();
capSetVideoFormat(m_hVideoWnd,&bitinfo,sizeof(BITMAPINFO));
[left]1[/left]img src=[qu]1[/qu]http://daohang.quanqiugou88.com/t/4.png[qu]1[/qu]  alt=[qu]1[/qu][qu]1[/qu] /[right]1[/right]
图像的大小只有这么大,没有在整个对话框内,另外我希望在对话框最大化的时候,图像也随着对话框变大,请大家帮忙看下,谢谢

主要程序代码:
(1)对话框初始化函数中:
          GetWindowRect(&rc);
        ScreenToClient(rc);       

        CAPDRIVERCAPS capd;
        CAPSTATUS     caps;
        BITMAPINFO    bitinfo;
            
        m_Event.ResetEvent();
     AfxBeginThread(ThreadFun,(void*)this);   //开始一个线程
       
        ::WaitForSingleObject(m_Event,INFINITE); //等待线程函数的执行  
        if (capDriverConnect(m_hVideoWnd,0))         //连接驱动程序
        {
                capDriverGetCaps(m_hVideoWnd,sizeof(CAPDRIVERCAPS),&capd);
                capGetStatus(m_hVideoWnd,&caps,sizeof(CAPSTATUS));

                ::SetParent(m_hVideoWnd,*this);      //设置父窗口
                ::SetWindowLong(m_hVideoWnd,GWL_STYLE,WS_CHILD);
                ::SetWindowPos(m_hVideoWnd,NULL,rc.left,rc.top,
                        rc.Width(),rc.Height(),SWP_NOZORDER);
               
                ::ShowWindow(m_hVideoWnd,SW_SHOW);
                capGetVideoFormat(m_hVideoWnd,&bitinfo,sizeof(BITMAPINFO));
         bitinfo.bmiHeader.biHeight=rc.Height();
                bitinfo.bmiHeader.biWidth=rc.Width();
         capSetVideoFormat(m_hVideoWnd,&bitinfo,sizeof(BITMAPINFO));
                capPreviewRate(m_hVideoWnd,30); //设置预览速率
                capPreview(m_hVideoWnd,true);        //开始预览

        }
        else
        {
                AfxMessageBox([qu]1[/qu]创建失败[qu]1[/qu]);
        }
(2)线程函数
UINT CCapVideoDlg::ThreadFun( LPVOID lpParam )
{
        CCapVideoDlg* pTempDlg = (CCapVideoDlg*)lpParam;
        if (pTempDlg!= NULL)
        {
                HWND hwnd= capCreateCaptureWindow(NULL,WS_POPUP,0,0,100,50,pTempDlg-[right]1[/right]m_hWnd,0);
                pTempDlg-[right]1[/right]m_hVideoWnd = hwnd;
                pTempDlg-[right]1[/right]m_Event.SetEvent();
               
                MSG msg;
                while(GetMessage(&msg,NULL,0,0))
                {
                        TranslateMessage(&msg);
                        DispatchMessage(&msg);               
                }
                return msg.wParam;
        }
        return 0;
}

 

=========================

HWND VFWAPI capCreateCaptureWindow(
   LPCSTR lpszWindowName,   
   DWORD dwStyle,           
   int x,                  
   int y,                  
   int nWidth,              
   int nHeight,            
   HWND hWnd,               
   int nID                  
);
这个函数的第五,六个参数指定宽度和高度。

 

======

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值