twain2/hugaotwainds/ImageProcess.cpp

158 lines
7.7 KiB
C++
Raw Permalink Normal View History

2020-03-11 02:53:30 +00:00
<EFBFBD><EFBFBD>// ImageProcess.cpp: <EFBFBD>[<EFBFBD>s<EFBFBD>e<EFBFBD>N
//
#include "stdafx.h"
#include "ImageProcess.h"
#include "afxdialogex.h"
#include "resource.h"
//#include "UI_INI.h"
// ImageProcess <EFBFBD>[݋Fh0
//extern CUI_INI* m_pUI_INI;
IMPLEMENT_DYNAMIC(ImageProcess, CDialog)
ImageProcess::ImageProcess(CWnd* pParent /*=nullptr*/)
: CDialog(IDD_DIALOG_PAGEIMGPROC, pParent)
{
}
ImageProcess::~ImageProcess()
{
}
void ImageProcess::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_CMBFILTER, m_cmBoxFilter);
DDX_Control(pDX, IDC_SLDEAGEENHANCE, m_sldEageEnhance);
DDX_Control(pDX, IDC_SLDCHARENHACE, m_sldCharEnhance);
DDX_Control(pDX,IDC_SLDOUTHOLE,m_sldOutHole);
}
BEGIN_MESSAGE_MAP(ImageProcess, CDialog)
ON_WM_HSCROLL()
ON_BN_CLICKED(IDC_CKREMOVEHOLE, &ImageProcess::OnBnClickedCkremovehole)
END_MESSAGE_MAP()
// ImageProcess <EFBFBD>mo`Yt z<EFBFBD>^
BOOL ImageProcess::OnInitDialog()
{
CDialog::OnInitDialog();
OnInitcmBoxFilter(0);
OnInitsldCharEnhance(4);
OnInitsldEageEnhance(0);
OnInitsldOutHole(10);
// TODO: (Wdk<EFBFBD>m<EFBFBD>R<EFBFBD><EFBFBD>Y<EFBFBD>vR<EFBFBD>YS
return TRUE; // return TRUE unless you set the focus to a control
// _8^: OCX ^\'`u<EFBFBD><EFBFBD>^ԏ<EFBFBD>V FALSE
}
void ImageProcess::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: (Wdk<EFBFBD>m<EFBFBD>R<EFBFBD>mo`Yt z<EFBFBD>^<EFBFBD>Nx<EFBFBD>T/b<EFBFBD>(u؞<EFBFBD><EFBFBD><P
UpdateData(TRUE);
switch(pScrollBar->GetDlgCtrlID())
{
case IDC_SLDOUTHOLE:
{
CSliderCtrl *slc_C = (CSliderCtrl*)GetDlgItem(IDC_SLDOUTHOLE);
int valueC = slc_C->GetPos();
double outv=valueC/100.0;
char strC[10];
sprintf(strC,"%0.2f",outv);
SetDlgItemText(IDC_LBOUTHOLEVALUE, strC);
break;
}
case IDC_SLDCHARENHACE:
break;
default:
break;
}
CDialog::OnHScroll(nSBCode, nPos, pScrollBar);
UpdateData(FALSE);
}
void ImageProcess::OnInitcmBoxFilter(int selectIndex)
{
m_cmBoxFilter.InsertString(0,_T(" Nd<EFBFBD>r<EFBFBD>"));
m_cmBoxFilter.InsertString(1, _T("d<><64>~r<>"));
m_cmBoxFilter.InsertString(2, _T("d<><64>~r<>"));
m_cmBoxFilter.InsertString(3, _T("d<>݄r<DD84>"));
m_cmBoxFilter.InsertString(4, _T("<00>~r<><72>X:_"));
m_cmBoxFilter.InsertString(5, _T("<00>~r<><72>X:_"));
m_cmBoxFilter.InsertString(6, _T("݄r<DD84><72>X:_"));
m_cmBoxFilter.SetCurSel(selectIndex);
}
void ImageProcess::OnInitsldEageEnhance(int selectIndex)
{
m_sldEageEnhance.SetRange(-2,2);
m_sldEageEnhance.SetTicFreq(1);
m_sldEageEnhance.SetPos(selectIndex);
}
void ImageProcess::OnInitsldCharEnhance(int selectIndex)
{
m_sldCharEnhance.SetRange(1, 7);
m_sldCharEnhance.SetTicFreq(1);
m_sldCharEnhance.SetPos(selectIndex);
}
void ImageProcess::OnInitsldOutHole(int selectIndex)
{
m_sldOutHole.SetRange(1,50);
m_sldOutHole.SetTicFreq(5);
m_sldOutHole.SetPos(selectIndex);
}
void ImageProcess::OnBnClickedCkremovehole()
{
// TODO: (Wdk<EFBFBD>m<EFBFBD>R<EFBFBD>c<EFBFBD>N<EFBFBD><EFBFBD>wYt z<EFBFBD>^<EFBFBD>Nx
int checked= ((CButton*)GetDlgItem(IDC_CKREMOVEHOLE))->GetCheck();
EnableOutHoleCheckChanged(checked);
}
void ImageProcess::EnableOutHoleCheckChanged(BOOL enable)
{
((CButton*)GetDlgItem(IDC_CKREMOVEHOLE))->SetCheck(enable);
((CStatic*) GetDlgItem(IDC_LBOUTHOLEVALUE))->EnableWindow(enable==1?TRUE:FALSE);
((CSliderCtrl*)GetDlgItem(IDC_SLDOUTHOLE))->EnableWindow(enable==1?TRUE:FALSE);
((CStatic*)GetDlgItem(IDC_LBSEARCHAREA))->EnableWindow(enable==1?TRUE:FALSE);
}
void ImageProcess::SetOutHoleValue(int value)
{
((CSliderCtrl*)GetDlgItem(IDC_SLDOUTHOLE))->SetPos(value);
CString lbstr;
lbstr.Format("%0.2f",value/100.0);
((CStatic*)GetDlgItem(IDC_LBOUTHOLEVALUE))->SetWindowText(lbstr.GetBuffer());
}
void ImageProcess::SetMultiOutputEnable(int pixtype,bool enable)
{
switch(pixtype)
{
case 2://i_r<EFBFBD>
((CButton*)GetDlgItem(IDC_CKMULTIOUTPUT))->SetCheck(enable);
((CButton*)GetDlgItem(IDC_CKMULTIOUTPUT))->EnableWindow(TRUE);
break;
case 0://pp<EFBFBD>^ ў}v
case 1:
((CButton*)GetDlgItem(IDC_CKMULTIOUTPUT))->SetCheck(FALSE);
((CButton*)GetDlgItem(IDC_CKMULTIOUTPUT))->EnableWindow(FALSE);
break;
default:
break;
}
}