Как отключить автофокус веб-камеры с помощью кодов MFC C++
Я новичок в программировании MFC C++. Недавно я сделал программу с использованием MFC C++ от visual studio 2015 для захвата изображения с помощью веб-камеры. Для моей программы мне нужно отключить режим "автофокус" веб-камеры. Я использую logitech C922 pro.
Может ли кто-нибудь научить и посоветовать мне коды в MFC C++?
Большое спасибо и раньше....
Что я уже пробовал:
Используя openCV, я могу это сделать. Но я не хочу им пользоваться. Так что очень ценю, если кто-то научит и посоветует мне, как отключить автофокус веб-камеры с помощью кодов MFC C++...
Hi Richard, thanks a lot before... I am using below codes: #include <vfw.h> //I use "vfw32.lib" //================================// BOOL CProgramDlg::OnInitDialog() { CDialogEx::OnInitDialog(); // Add "About..." menu item to system menu. // IDM_ABOUTBOX must be in the system command range. ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { BOOL bNameValid; CString strAboutMenu; bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); ASSERT(bNameValid); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // Set the icon for this dialog. The framework does this automatically // when the application's main window is not a dialog SetIcon(m_hIcon, TRUE); // Set big icon SetIcon(m_hIcon, FALSE); // Set small icon m_pictCtrl_PS.Load(CString(_T(IDS_PS_BMP))); m_pictCtrl_tittle.Load(CString(_T(IDS_TITTLE_BMP))); // TODO: Add extra initialization here RECT sensorRect; CWnd *cWndSensor = GetDlgItem(IDC_WEBCAM); CDC *pDC = cWndSensor->GetDC(); cWndSensor->GetClientRect(&sensorRect); nWidth = (sensorRect.right - sensorRect.left); nHeight = (sensorRect.bottom - sensorRect.top); ReleaseDC(pDC); hMyWindow = capCreateCaptureWindow(_T("handle"), WS_CHILD | WS_VISIBLE, 0, 0, nWidth, nHeight, GetDlgItem(IDC_WEBCAM)->m_hWnd, 1); //SetWindowPos(hMyWindow, 1, 1, 10, 10, SWP_NOMOVE | SWP_NOZORDER); // connect the driver with the webcam BOOL xx = capDriverConnect(hMyWindow, 0); if (xx == false) { AfxMessageBox("Webcam not found ", 0, 0); CDialogEx::OnOK(); return false; } ; //----------- Set the Timer to grab new images ----------- //Streaming SetTimer(1, 40, 0); //SetFocus_Method2 to IDC_EDIT1 GotoDlgCtrl(GetDlgItem(IDC_TEXT_SERIAL)); m_setting.Create(IDD_MASTER_SETTING, this); m_showROI.Create(IDD_SHOW_ROI, this); m_editc.EnableWindow(FALSE); m_editm.EnableWindow(FALSE); m_edit_ROI_1.ShowWindow(FALSE); m_edit_ROI_2.ShowWindow(FALSE); m_edit_ROI.ShowWindow(FALSE); m_edit_ROI1.ShowWindow(FALSE); m_pictCtrl_webcam2.ShowWindow(FALSE); return FALSE; // return TRUE unless you set the focus to a control }
Richard MacCutchan
Какие коды вы используете для управления камерой?
Zayoshin
Код перешел к вопросу.