blob: 61b4f4b1a09e1cb1fb7ef750ce16abdbbaf113be [file] [log] [blame]
// DlgResample.cpp : implementation file
//
#include "stdafx.h"
#include "demo.h"
#include "DlgResample.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
//////////////////////////////////////////////////////////////////////////////
// DlgResample dialog
DlgResample::DlgResample(CWnd* pParent /*=NULL*/)
: CDialog(DlgResample::IDD, pParent)
{
//{{AFX_DATA_INIT(DlgResample)
m_factor = 0.0f;
m_newheight = 0;
m_newwidth = 0;
//}}AFX_DATA_INIT
}
void DlgResample::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(DlgResample)
DDX_Control(pDX, IDC_EDIT1, m_ed1);
DDX_Control(pDX, IDC_CHECK2, m_ch2);
DDX_Control(pDX, IDC_COMBO_IM, inMethod);
DDX_Control(pDX, IDC_RADIO2, m_r2);
DDX_Control(pDX, IDC_RADIO1, m_r1);
DDX_Control(pDX, IDOK, m_ok);
DDX_Control(pDX, IDCANCEL, m_canc);
DDX_Text(pDX, IDC_EDIT1, m_factor);
DDX_Text(pDX, IDC_EDIT3, m_newheight);
DDX_Text(pDX, IDC_EDIT2, m_newwidth);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(DlgResample, CDialog)
//{{AFX_MSG_MAP(DlgResample)
ON_EN_CHANGE(IDC_EDIT2, OnChangeEdit2)
ON_EN_CHANGE(IDC_EDIT3, OnChangeEdit3)
ON_EN_CHANGE(IDC_EDIT1, OnChangeEdit1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
//////////////////////////////////////////////////////////////////////////////
// DlgResample message handlers
BOOL DlgResample::OnInitDialog()
{
CDialog::OnInitDialog();
m_ok.SetIcon(IDI_G,BS_LEFT);
m_canc.SetIcon(IDI_R,BS_LEFT);
m_r1.SetCheck(1);
inMethod.SetCurSel(2);
m_ch2.SetCheck(1);
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void DlgResample::OnOK()
{
m_mode=inMethod.GetCurSel();
if (m_r1.GetCheck()) m_sizemode=1; //factor
if (m_r2.GetCheck()) m_sizemode=0; //pixel
CDialog::OnOK();
}
void DlgResample::OnChangeEdit2()
{
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.
if (m_ch2.GetCheck()){
UpdateData(1);
m_newheight = (DWORD)(m_newwidth / m_ratio);
UpdateData(0);
}
m_r1.SetCheck(0);
m_r2.SetCheck(1);
}
void DlgResample::OnChangeEdit3()
{
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.
if (m_ch2.GetCheck()){
UpdateData(1);
m_newwidth = (DWORD)(m_newheight * m_ratio);
UpdateData(0);
}
m_r1.SetCheck(0);
m_r2.SetCheck(1);
}
void DlgResample::OnChangeEdit1()
{
// TODO: If this is a RICHEDIT control, the control will not
// send this notification unless you override the CDialog::OnInitDialog()
// function and call CRichEditCtrl().SetEventMask()
// with the ENM_CHANGE flag ORed into the mask.
CString s;
m_ed1.GetWindowText(s);
bool hasdp = (s.Find('.')>=0);
if (!(s.GetAt(s.GetLength()-1)=='.' || hasdp && s.GetAt(s.GetLength()-1)=='0')){
UpdateData(1);
m_newwidth = (DWORD)(m_w * fabs(m_factor));
m_newheight = (DWORD)(m_h * fabs(m_factor));
UpdateData(0);
}
m_r2.SetCheck(0);
m_r1.SetCheck(1);
}