📄 pagecam.cpp
字号:
else
{
GetDlgItem(IDC_SLIDER_BRIGHTNESS)->EnableWindow(TRUE);
GetDlgItem(IDC_SLIDER_EXPOTIME)->EnableWindow(TRUE);
GetDlgItem(IDC_EDIT_BRIGHTNESS)->EnableWindow(TRUE);
GetDlgItem(IDC_EDIT_EXPO_TIME)->EnableWindow(TRUE);
GetDlgItem(IDC_EDIT_LIGHT_SENS)->EnableWindow(TRUE);
GetDlgItem(IDC_SLIDER_LIGHTSENS)->EnableWindow(TRUE);
}
UpdateData (FALSE);
}
void CPageCam::UpdateAll()
{
UpdateHueGroup();
UpdateBrightGroup();
m_chk_filter = m_VideoFrame.GetLowLightFilter ();
UpdateData (FALSE);
}
//*****************************************
//* Check buttons functions *
//*****************************************
void CPageCam::OnCheckAutoHue()
{
m_chk_hue = !m_chk_hue;
UpdateData (FALSE);
if (m_chk_hue)
{
m_VideoFrame.SetColorMode (1);
if (!SetTimer (TIMER_HUE,INTERVAL,NULL)) AfxMessageBox (COULD_NOT_START_UP_TIMER);
}
else
{
m_VideoFrame.SetColorMode (0);
KillTimer(TIMER_HUE);
}
UpdateHueGroup();
}
void CPageCam::OnCheckAutoBrightness()
{
m_chk_bright = !m_chk_bright;
UpdateData (FALSE);
if (m_chk_bright)
{
m_VideoFrame.SetBrightnessMode (1);
if (!SetTimer (TIMER_BRIGHT,INTERVAL,NULL)) AfxMessageBox (COULD_NOT_START_UP_TIMER);
}
else
{
m_VideoFrame.SetBrightnessMode (0);
KillTimer(TIMER_BRIGHT);
}
UpdateBrightGroup();
}
void CPageCam::OnCheckLowLight()
{
m_chk_filter = !m_chk_filter;
UpdateData (FALSE);
if (m_chk_filter) m_VideoFrame.SetLowLightFilter (TRUE);
else m_VideoFrame.SetLowLightFilter (FALSE);
}
void CPageCam::OnCheckPictureSmart()
{
m_chk_smart = !m_chk_smart;
UpdateData (FALSE);
if (m_chk_smart) m_VideoFrame.EnablePictureSmart (TRUE);
else m_VideoFrame.EnablePictureSmart (FALSE);
}
void CPageCam::OnCheckMirror()
{
m_chk_mirror = !m_chk_mirror;
UpdateData (FALSE);
if ((m_chk_mirror) && (!m_chk_flip)) m_VideoFrame.SetOrientation (1);
if ((m_chk_mirror) && (m_chk_flip)) m_VideoFrame.SetOrientation (3);
if ((!m_chk_mirror) && (!m_chk_flip)) m_VideoFrame.SetOrientation (0);
if ((!m_chk_mirror) && (m_chk_flip)) m_VideoFrame.SetOrientation (2);
}
void CPageCam::OnCheckFlip()
{
m_chk_flip = !m_chk_flip;
UpdateData (FALSE);
if ((m_chk_mirror) && (!m_chk_flip)) m_VideoFrame.SetOrientation (1);
if ((m_chk_mirror) && (m_chk_flip)) m_VideoFrame.SetOrientation (3);
if ((!m_chk_mirror) && (!m_chk_flip)) m_VideoFrame.SetOrientation (0);
if ((!m_chk_mirror) && (m_chk_flip)) m_VideoFrame.SetOrientation (2);
}
void CPageCam::OnCheckAutoInc()
{
UpdateData (TRUE);
}
//*****************************************
//* Buttons procedures *
//*****************************************
void CPageCam::OnButtonDisplayPicture()
{
m_pCurImg->DisplayImage (m_dc->m_hDC,197,20,320,240,0, ALL_IMAGE, SRCCOPY);
}
void CPageCam::OnButtonDisplayChannels()
{
CDlgRGBChan dlg(NULL,m_pCurImg);
dlg.DoModal();
}
void CPageCam::OnButtonSettings()
{
m_VideoFrame.DlgVideoSource();
UpdateAll();
}
void CPageCam::OnButtonDim()
{
m_VideoFrame.DlgVideoFormat();
}
void CPageCam::OnButtonDefault()
{
m_VideoFrame.RestoreDriverDefaults();
Sleep (200);
UpdateAll();
}
void CPageCam::OnButtonTakePicture()
{
UpdateData (TRUE);
if (m_filename == "") return;
m_filename.Format ("%s%s", m_filename, STRING_BMP_EXT);
if ( !m_VideoFrame.SaveSingleFrameToFile (m_filename) )
{
AfxMessageBox ("Could not save file");
return;
}
delete m_pCurImg;
m_pCurImg = new CImage();
m_pCurImg->ReadFromFile (m_filename);
m_pCurImg->DisplayImage (m_dc->m_hDC,197,20,320,240,120, ALL_IMAGE, SRCCOPY);
m_edit_filename = m_filename;
m_filename = "Picture";
if (m_chk_auto_inc) m_pict_count++;
m_filename.Format ("%s%i", m_filename, m_pict_count);
UpdateData (FALSE);
CPageCam::OnPaint();
}
void CPageCam::OnButtonEnableVideo()
{
CString str;
if (m_bLive == TRUE)
{
if (m_bInit == FALSE)
{
if (m_VideoFrame.Initialization (0)) m_bInit = TRUE;
else return;
}
m_VideoFrame.SetVideoDisplay(FALSE);
m_bLive = FALSE;
str = "Enable Video";
m_but_enable.SetWindowText (str);
}
else
{
if (m_bInit == FALSE)
{
if (m_VideoFrame.Initialization (0)) m_bInit = TRUE;
else return;
}
m_VideoFrame.SetVideoDisplay(TRUE);
m_bLive = TRUE;
str = "Disable Video";
m_but_enable.SetWindowText (str);
CPageCam::UpdateAll();
}
}
//*****************************************
//* OnChangeEdit functions *
//*****************************************
void CPageCam::OnChangeEditCiandRed()
{
CString str;
GetDlgItem (IDC_EDIT_CIAND_RED)->GetWindowText(str);
if (str == "") return;
UpdateData (TRUE);
if (m_s_cyan <= 255)
{
m_VideoFrame.SetCyanRedColor (m_s_cyan);
UpdateHueGroup();
}
}
void CPageCam::OnChangeEditYelBlue()
{
CString str;
GetDlgItem (IDC_EDIT_YEL_BLUE)->GetWindowText(str);
if (str == "") return;
UpdateData (TRUE);
if (m_s_yel <= 255)
{
m_VideoFrame.SetYellowBlueColor (m_s_yel);
UpdateHueGroup();
}
}
void CPageCam::OnChangeEditContrast()
{
CString str;
GetDlgItem (IDC_EDIT_CONTRAST)->GetWindowText(str);
if (str == "") return;
UpdateData (TRUE);
if (m_s_contrast <= 255)
{
m_VideoFrame.SetContrastMagnitude (m_s_contrast);
UpdateBrightGroup();
}
}
void CPageCam::OnChangeEditExpoTime()
{
CString str;
GetDlgItem (IDC_EDIT_EXPO_TIME)->GetWindowText(str);
if (str == "") return;
UpdateData (TRUE);
if (m_s_expo <= 255)
{
m_VideoFrame.SetExposure (m_s_expo);
UpdateBrightGroup();
}
}
void CPageCam::OnChangeEditLightSens()
{
CString str;
GetDlgItem (IDC_EDIT_LIGHT_SENS)->GetWindowText(str);
if (str == "") return;
UpdateData (TRUE);
if (m_s_light <= 255)
{
m_VideoFrame.SetGain(m_s_light);
UpdateBrightGroup();
}
}
void CPageCam::OnChangeEditSaturation()
{
CString str;
GetDlgItem (IDC_EDIT_SATURATION)->GetWindowText(str);
if (str == "") return;
UpdateData (TRUE);
if (m_s_saturation <= 255)
{
m_VideoFrame.SetSaturation (m_s_saturation);
UpdateHueGroup();
}
}
void CPageCam::OnChangeEditBrightness()
{
CString str;
GetDlgItem (IDC_EDIT_BRIGHTNESS)->GetWindowText(str);
if (str == "") return;
UpdateData (TRUE);
if (m_s_bright <= 255)
{
m_VideoFrame.SetBrightnessMagnitude (m_s_bright);
UpdateBrightGroup();
}
}
void CPageCam::OnChangeEditVideoQual()
{
CString str;
GetDlgItem (IDC_EDIT_VIDEO_QUAL)->GetWindowText(str);
if (str == "") return;
UpdateData (TRUE);
if (m_s_video <= 4)
{
m_VideoFrame.SetCompression (m_s_video);
m_slider_video.SetPos (m_s_video);
}
}
void CPageCam::OnChangeEditFilename()
{
UpdateData (TRUE);
}
//*****************************************
//* Registry procedures *
//*****************************************
void CPageCam::Read_Registry()
{
CWinApp* pApp = AfxGetApp();
// The check
m_chk_auto_inc = (BOOL) pApp->GetProfileInt (SECTION_CAM,ITEM_AUTO_INC,FALSE);
m_chk_bright = (BOOL) pApp->GetProfileInt (SECTION_CAM,ITEM_AUTO_BRIGHT,TRUE);
m_chk_hue = (BOOL) pApp->GetProfileInt (SECTION_CAM,ITEM_AUTO_HUE,TRUE);
m_chk_filter = (BOOL) pApp->GetProfileInt (SECTION_CAM,ITEM_LIGHT_FILTER,TRUE);
m_chk_mirror = (BOOL) pApp->GetProfileInt (SECTION_CAM,ITEM_MIRROR,FALSE);
m_chk_flip = (BOOL) pApp->GetProfileInt (SECTION_CAM,ITEM_FLIP,FALSE);
// The edit fields
m_s_cyan = pApp->GetProfileInt (SECTION_CAM,ITEM_CYANRED,128);
m_s_yel = pApp->GetProfileInt (SECTION_CAM,ITEM_YELLOWBLUE,128);
m_s_saturation = pApp->GetProfileInt (SECTION_CAM,ITEM_SATURATION,128);
m_s_bright = pApp->GetProfileInt (SECTION_CAM,ITEM_BRIGHTNESS,128);
m_s_contrast = pApp->GetProfileInt (SECTION_CAM,ITEM_CONTRAST,128);
m_s_expo = pApp->GetProfileInt (SECTION_CAM,ITEM_EXPO,128);
m_s_light = pApp->GetProfileInt (SECTION_CAM,ITEM_LIGHT_SENS,128);
m_s_video = pApp->GetProfileInt (SECTION_CAM,ITEM_VIDEO,4);
m_bLive = (BOOL) pApp->GetProfileInt (SECTION_CAM,ITEM_LIVE,FALSE);
UpdateData (FALSE);
}
void CPageCam::Store_Registry()
{
CWinApp* pApp = AfxGetApp();
// The check
pApp->WriteProfileInt (SECTION_CAM, ITEM_AUTO_INC, m_chk_auto_inc);
pApp->WriteProfileInt (SECTION_CAM, ITEM_AUTO_BRIGHT,m_chk_bright );
pApp->WriteProfileInt (SECTION_CAM, ITEM_AUTO_HUE,m_chk_hue);
pApp->WriteProfileInt (SECTION_CAM, ITEM_LIGHT_FILTER,m_chk_filter);
pApp->WriteProfileInt (SECTION_CAM, ITEM_MIRROR,m_chk_mirror);
pApp->WriteProfileInt (SECTION_CAM, ITEM_FLIP,m_chk_flip);
pApp->WriteProfileInt (SECTION_CAM, ITEM_CYANRED,m_s_cyan);
pApp->WriteProfileInt (SECTION_CAM, ITEM_YELLOWBLUE,m_s_yel );
pApp->WriteProfileInt (SECTION_CAM, ITEM_SATURATION,m_s_saturation);
pApp->WriteProfileInt (SECTION_CAM, ITEM_BRIGHTNESS,m_s_bright);
pApp->WriteProfileInt (SECTION_CAM, ITEM_CONTRAST,m_s_contrast);
pApp->WriteProfileInt (SECTION_CAM, ITEM_EXPO,m_s_expo);
pApp->WriteProfileInt (SECTION_CAM, ITEM_LIGHT_SENS,m_s_light);
pApp->WriteProfileInt (SECTION_CAM, ITEM_VIDEO,m_s_video);
pApp->WriteProfileInt (SECTION_CAM, ITEM_LIVE, (int) m_bLive);
}
//*****************************************
//* Other procedures *
//*****************************************
BOOL CPageCam::OnSetActive()
{
return CPropertyPage::OnSetActive();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -