1,221
社区成员
发帖
与我相关
我的任务
分享
#include <vfw.h>
HWND hWndC,ghWndCap;
void __fastcall TfmGoodsPhotoGet::sbCheckVideoClick(TObject *Sender)
{
bool bVFWFlag;
int iVFWCount;
if(!bCheckVideoEnable)
{//探杆打开
hWndC = Panel8->Handle;
//创建捕获窗,其中hWnd为主窗口句柄
ghWndCap = capCreateCaptureWindow("Capture Window",WS_CHILD|WS_VISIBLE,
0,0,352,298,hWndC,0);
bVFWFlag = false;
iVFWCount = 0;
while((iVFWCount<1000)&&(bVFWFlag==false))
{
bVFWFlag = capDriverConnect(ghWndCap,0);
iVFWCount++;
}
if(bVFWFlag==true)
{
CAPDRIVERCAPS caps;
capDriverGetCaps(ghWndCap,sizeof(caps),&caps);
if(caps.fHasOverlay) capOverlay(ghWndCap,TRUE);
capPreviewScale(ghWndCap,1);
capPreviewRate(ghWndCap,1000/24); // 设置Preview模式的显示速率
capPreview(ghWndCap,TRUE); //启动Preview模式
bCheckVideoEnable = true;
sbCheckVideo->Caption = "关闭探杆";
sbCapture->Enabled = true;
}
}
else
{//探杆关闭
if(ghWndCap)
{
capPreview(ghWndCap,false);
capCaptureStop(ghWndCap);
capCaptureAbort(ghWndCap);
capDriverDisconnect(ghWndCap);
::DestroyWindow(ghWndCap);
ghWndCap=NULL;
bCheckVideoEnable = false;
sbCheckVideo->Caption = "打开探杆";
sbCapture->Enabled = false;
}
}
}
//---------------------------------------------------------------------------