/// <summary> /// 开始显示图像 /// </summary> public void Start() { if (bWorkStart) { return; } bWorkStart = true; byte[] lpszName = new byte[100]; hWndC = CameraApi.capCreateCaptureWindowA(lpszName, WS_CHILD | WS_VISIBLE, mLeft, mTop, mWidth, mHeight, mControlPtr, 0); if (hWndC.ToInt32() != 0) { CameraApi.SendMessage(hWndC, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 0); CameraApi.SendMessage(hWndC, WM_CAP_SET_CALLBACK_ERROR, 0, 0); CameraApi.SendMessage(hWndC, WM_CAP_SET_CALLBACK_STATUSA, 0, 0); CameraApi.SendMessage(hWndC, WM_CAP_DRIVER_CONNECT, 0, 0); CameraApi.SendMessage(hWndC, WM_CAP_SET_SCALE, 1, 0); CameraApi.SendMessage(hWndC, WM_CAP_SET_PREVIEWRATE, 66, 0); CameraApi.SendMessage(hWndC, WM_CAP_SET_OVERLAY, 1, 0); CameraApi.SendMessage(hWndC, WM_CAP_SET_PREVIEW, 1, 0); } return; }
public void Start(int i)///这是我新添的一个方法,想用来调用另外一个摄像头, { //if (bWorkStart_1) // return; bWorkStart_1 = true; byte[] lpszName_1 = new byte[100]; hWndC_1 = CameraApi.capCreateCaptureWindowB(lpszName_1, WS_CHILD | WS_VISIBLE, mLeft, mTop, mWidth, mHeight, mControlPtr_1, 0); if (hWndC_1.ToInt32() != 0) { CameraApi.SendMessage(hWndC_1, WM_CAP_SET_CALLBACK_VIDEOSTREAM, 0, 1); CameraApi.SendMessage(hWndC_1, WM_CAP_SET_CALLBACK_ERROR, 0, 0); CameraApi.SendMessage(hWndC_1, WM_CAP_SET_CALLBACK_STATUSA, 0, 0); CameraApi.SendMessage(hWndC_1, WM_CAP_DRIVER_CONNECT, 1, 0); CameraApi.SendMessage(hWndC_1, WM_CAP_SET_SCALE, 1, 0); CameraApi.SendMessage(hWndC_1, WM_CAP_SET_PREVIEWRATE, 66, 0); CameraApi.SendMessage(hWndC_1, WM_CAP_SET_OVERLAY, 1, 0); CameraApi.SendMessage(hWndC_1, WM_CAP_SET_PREVIEW, 1, 0); } return; }
/// <summary> /// 停止显示 /// </summary> public void Stop() { CameraApi.SendMessage(hWndC, WM_CAP_DRIVER_DISCONNECT, 0, 0); bWorkStart = false; }