// RefData.cpp : implementation file // #include "stdafx.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif extern CRGSMRKApp theApp; ///////////////////////////////////////////////////////////////////////////// // CRefDataDlg dialog CRefDataDlg::CRefDataDlg(CWnd* pParent /*=NULL*/) : CDialog(CRefDataDlg::IDD, pParent) { //{{AFX_DATA_INIT(CRefDataDlg) m_nMaxSizeRatio = 1; m_nMinSizeRatio = 1; m_nHeight = 1; m_nWidth = 1; //}}AFX_DATA_INIT } void CRefDataDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CRefDataDlg) DDX_Control(pDX, IDC_REF_TYPE_CMB, m_RegType); DDX_Text(pDX, IDC_REF_MAXSIZE_EDT, m_nMaxSizeRatio); DDV_MinMaxInt(pDX, m_nMaxSizeRatio, 1, 999999); DDX_Text(pDX, IDC_REF_MINSIZE_EDT, m_nMinSizeRatio); DDV_MinMaxInt(pDX, m_nMinSizeRatio, 1, 999999); DDX_Text(pDX, IDC_REF_HEIGHT_EDT, m_nHeight); DDV_MinMaxInt(pDX, m_nHeight, 1, 999999); DDX_Text(pDX, IDC_REF_WIDTH_EDT, m_nWidth); DDV_MinMaxInt(pDX, m_nWidth, 1, 999999); //}}AFX_DATA_MAP } BEGIN_MESSAGE_MAP(CRefDataDlg, CDialog) //{{AFX_MSG_MAP(CRefDataDlg) ON_BN_CLICKED(IDC_REF_NEXT_BTN, OnNext) ON_EN_CHANGE(IDC_REF_MINSIZE_EDT, OnChangeRefMinsizeEdt) ON_EN_CHANGE(IDC_REF_HEIGHT_EDT, OnChangeRefHeightEdt) ON_EN_CHANGE(IDC_REF_MAXSIZE_EDT, OnChangeRefMaxsizeEdt) ON_EN_CHANGE(IDC_REF_WIDTH_EDT, OnChangeRefWidthEdt) ON_EN_KILLFOCUS(IDC_REF_MAXSIZE_EDT, OnKillfocusRefMaxsizeEdt) ON_EN_KILLFOCUS(IDC_REF_MINSIZE_EDT, OnKillfocusRefMinsizeEdt) //}}AFX_MSG_MAP END_MESSAGE_MAP() ///////////////////////////////////////////////////////////////////////////// // CRefDataDlg message handlers void CRefDataDlg::OnNext() { CMDIFrameWnd *pFrame = (CMDIFrameWnd*)AfxGetApp()->m_pMainWnd; CMDIChildWnd *pChild = (CMDIChildWnd *) pFrame->GetActiveFrame(); CRGSMRKView *pView = (CRGSMRKView *) pChild->GetActiveView(); if(!UpdateData(TRUE)) return; pView->SetRegMarkDlg(); if(pView->GetRegMarkDlg() != NULL) { BOOL nRet = pView->GetRegMarkDlg()->Create(IDD_REG_MARK_DLG); if(!nRet) { AfxMessageBox(TEXT("Error Creating Dialog")); } pView->GetRegMarkDlg()->ShowWindow(SW_SHOW); } else { AfxMessageBox(TEXT("Error Creating Dialog")); } theApp.m_RefDataDlg.nMaxSizeRatio = m_nMaxSizeRatio; theApp.m_RefDataDlg.nMinSizeRatio = m_nMinSizeRatio; theApp.m_RefDataDlg.nWidth = m_nWidth; theApp.m_RefDataDlg.nHeight = m_nHeight; UpdateData(FALSE); theApp.m_bRefDataDlg = FALSE; EndDialog(TRUE); } BOOL CRefDataDlg::OnInitDialog() { CDialog::OnInitDialog(); theApp.m_bRefDataDlg = TRUE; theApp.m_bRegMarkDlg = FALSE; UpdateData(TRUE); m_RegType.AddString(TEXT("T Shape")); m_RegType.SetCurSel(0); m_nMaxSizeRatio = theApp.m_RefDataDlg.nMaxSizeRatio; m_nMinSizeRatio = theApp.m_RefDataDlg.nMinSizeRatio; m_nWidth = theApp.m_RefDataDlg.nWidth; m_nHeight = theApp.m_RefDataDlg.nHeight; UpdateData(FALSE); return TRUE; } void CRefDataDlg::OnCancel() { theApp.m_bRefDataDlg = FALSE; theApp.m_bRegMarkDlg = FALSE; CDialog::OnCancel(); } void CRefDataDlg::OnChangeRefMinsizeEdt() { UpdateData(TRUE); if (m_nMinSizeRatio > 99999) { m_nMinSizeRatio = 99999; } UpdateData(FALSE); } void CRefDataDlg::OnChangeRefHeightEdt() { UpdateData(TRUE); if (m_nHeight > 99999) { m_nHeight = 99999; } UpdateData(FALSE); } void CRefDataDlg::OnChangeRefMaxsizeEdt() { UpdateData(TRUE); if (m_nMaxSizeRatio > 99999) { m_nMaxSizeRatio = 99999; } UpdateData(FALSE); } void CRefDataDlg::OnChangeRefWidthEdt() { UpdateData(TRUE); if (m_nWidth > 99999) { m_nWidth = 99999; } UpdateData(FALSE); } void CRefDataDlg::OnKillfocusRefMaxsizeEdt() { UpdateData(TRUE); if(m_nMaxSizeRatio <= m_nMinSizeRatio) { m_nMaxSizeRatio = theApp.m_RefDataDlg.nMaxSizeRatio; MessageBox(TEXT("Maximum size ratio should be greater than minimum size ratio"), TEXT("ERROR"), MB_OK); } UpdateData(FALSE); } void CRefDataDlg::OnKillfocusRefMinsizeEdt() { if(m_nMinSizeRatio >= m_nMaxSizeRatio) { m_nMinSizeRatio = theApp.m_RefDataDlg.nMinSizeRatio; MessageBox(TEXT("Minimum size ratio should be less than maximum size ratio and greater than zero"), TEXT("ERROR"), MB_OK); } UpdateData(FALSE); }