<textarea class="cpp" rows="10" cols="60" name="code">
//--------------------------------------------------------------------------- #include
#pragma hdrstop
#include
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
LRESULT CALLBACK FrameCallBack( HWND hwnd, Longint lpvhdr );
HWND hCapWnd,vc1;
int frame;
BOOL fHasOverlay;
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
LRESULT CALLBACK FrameCallBack( HWND hCapWnd, Longint lpvhdr )
{
LPVIDEOHDR VideoStr;
VideoStr=LPVIDEOHDR(lpvhdr);
frame ; //每呼叫一次FrameCallBack函式就加一
Form1->Label1->Caption = IntToStr(frame); //show已經出處理的影像張數
// Form1->DoubleBuffered = true;
return 0; } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender)
{
hCapWnd = capCreateCaptureWindow ( "Capture Window",
WS_CHILD | WS_VISIBLE ,0,0,Panel1->Width,Panel1->Height,Panel1->Handle, 0);
bool a = false;
a=capDriverConnect(hCapWnd,0);
/*for(int i=0;i<1;i )
{
a=capDriverConnect(hCapWnd,i);
if( a ) break;
}*/
if( !a )
ShowMessage("攝影機連接失敗..");
//capPreviewRate(hCapWnd,33);
//capPreview(hCapWnd,true);
capPreviewScale(hCapWnd,true);
capOverlay(hCapWnd,true);
//capSetCallbackOnFrame (hCapWnd, &FrameCallBack);
}
//--------------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender)
{
capDlgVideoFormat(hCapWnd);
//capSetCallbackOnFrame (hCapWnd, &FrameCallBack);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
if(capDriverGetCaps(hCapWnd,&fHasOverlay,sizeof(fHasOverlay)))
Label2->Caption="yes";
else
Label2->Caption="no";
}
//--------------------------------------------------------------------------- </textarea>
以上是我的程式碼
用preview都沒有問題
用overlay就不能跑
請問一下問題是出在哪裡?