// 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);
}
}
}