在本程序的C++版本中,函数原型如下:
DT_API DS_CAMERA_STATUS CameraInit(DS_SNAP_PROC pCallbackFunction,IN DS_RESOLUTION uiResolution, IN HWND hWndDisplay, IN LPVOID lpThreadparam );调用时:
if (STATUS_OK != CameraInit(SnapThreadCallback,
m_Resolution,
GetDlgItem(IDC_VIDEO)->m_hWnd, //NULL,//
CamNum+1) )其中IDC_VIDEO控件是一个在VC中的picture控件。在delphi中使用什么控件?
上面那个函数的第三个参数怎么用?
DT_API DS_CAMERA_STATUS CameraInit(DS_SNAP_PROC pCallbackFunction,IN DS_RESOLUTION uiResolution, IN HWND hWndDisplay, IN LPVOID lpThreadparam );调用时:
if (STATUS_OK != CameraInit(SnapThreadCallback,
m_Resolution,
GetDlgItem(IDC_VIDEO)->m_hWnd, //NULL,//
CamNum+1) )其中IDC_VIDEO控件是一个在VC中的picture控件。在delphi中使用什么控件?
上面那个函数的第三个参数怎么用?
解决方案 »
- 我使用C#写了一个DLL 供MSSQL2005程序集使用
- 高分求如何在dbgrid中如何用鼠标拖动记录。例如将第二条记录拖动到第一条的位置,使之成为第一条。
- 请问怎么在ShellListView中屏蔽双击时应用程序的自动执行?
- 一个简单问题
- 高分求助
- 如何判断目录c:\temp已经存在?(在线)
- 图形控件问题
- 谁给讲讲怎么样开始学delphi?需要具备什么素质,基础,或者说介绍几本有价值的书
- 关于popupmenu的简单问题,但我就是解决不了,大家都进来看看吧。解决者必定给分!
- 文本加密的问题
- 大家好,如何用Delphi做一个软件监测另个一个软件发送出来的指令,和接收到的指令
- 关于记录复制求助
我手里就有现成的例子。
下面的代码是打开摄像头显示的按键程序。
if state=0 then exit;
hWndC := capCreateCaptureWindowA('My Own Capture Window',WS_CHILD or WS_VISIBLE ,Panel1.Left,Panel1.Top+29,Panel1.Width,Panel1.Height,Form3.Handle,0);
hWndC := capCreateCaptureWindowA('My Own Capture Window',WS_CHILD or WS_VISIBLE ,Panel1.Left,Panel1.Top+29,Panel1.Width,Panel1.Height,Form3.Handle,0);
if hWndC <> 0 then
begin
SendMessage(hWndC, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 0);
SendMessage(hWndC, WM_CAP_SET_CALLBACK_ERROR, 0, 0);
SendMessage(hWndC, WM_CAP_SET_CALLBACK_STATUSA, 0, 0);
SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0);
SendMessage(hWndC, WM_CAP_SET_SCALE, 1, 0);
SendMessage(hWndC, WM_CAP_SET_PREVIEWRATE, 66, 0);
SendMessage(hWndC, WM_CAP_SET_OVERLAY, 1, 0);
SendMessage(hWndC, WM_CAP_SET_PREVIEW, 1, 0);
end;显示上我在窗体上放了一个panel控件,调整好它的大小和位置,到时控制显示的窗体与它一样的大小和位置,就象是在它上面显示一样。其它的代码你需要我可以发给你的
const WM_CAP_START = WM_USER;
const WM_CAP_STOP = WM_CAP_START + 68;
const WM_CAP_DRIVER_CONNECT = WM_CAP_START + 10;
const WM_CAP_DRIVER_DISCONNECT = WM_CAP_START + 11;
const WM_CAP_SAVEDIB = WM_CAP_START + 25;
const WM_CAP_GRAB_FRAME = WM_CAP_START + 60;
const WM_CAP_SEQUENCE = WM_CAP_START + 62;
const WM_CAP_FILE_SET_CAPTURE_FILEA = WM_CAP_START + 20;
const WM_CAP_SEQUENCE_NOFILE =WM_CAP_START+ 63;
const WM_CAP_SET_OVERLAY =WM_CAP_START+ 51;
const WM_CAP_SET_PREVIEW =WM_CAP_START+ 50;
const WM_CAP_SET_CALLBACK_VIDEOSTREAM = WM_CAP_START +6;
const WM_CAP_SET_CALLBACK_ERROR=WM_CAP_START +2;
const WM_CAP_SET_CALLBACK_STATUSA= WM_CAP_START +3;
const WM_CAP_SET_CALLBACK_FRAME= WM_CAP_START +5;
const WM_CAP_SET_SCALE=WM_CAP_START+ 53;
const WM_CAP_SET_PREVIEWRATE=WM_CAP_START+ 52;
function capCreateCaptureWindowA(lpszWindowName : PCHAR; dwStyle : longint; x : integer;
y : integer;nWidth : integer;nHeight : integer;ParentWin : HWND;
nId : integer): HWND;STDCALL EXTERNAL 'AVICAP32.DLL';
procedure TForm3.bp2Click(Sender: TObject);
begin
if state=0 then exit;
if hWndC <> 0 then
begin
SendMessage(hWndC, WM_CAP_DRIVER_DISCONNECT, 0, 0);
SendMessage(hWndC, WM_CLOSE, 0, 0);
hWndC := 0;
end;
end;