// ConfigAdminDlg.cpp : ±¸Çö ÆÄÀÏÀÔ´Ï´Ù. // #include "stdafx.h" #include "ConsoleApp.h" #include "ConfigAdminDlg.h" #include ".\configadmindlg.h" #include ".\RexAlgorithm.h" #include ".\RexInterface.h" #include // CConfigAdminDlg ´ëÈ­ »óÀÚÀÔ´Ï´Ù. IMPLEMENT_DYNAMIC(CConfigAdminDlg, CDialog) CConfigAdminDlg::CConfigAdminDlg(CWnd* pParent /*=NULL*/) : CConfigSubDlg(CConfigAdminDlg::IDD, pParent) { m_show=false; } CConfigAdminDlg::~CConfigAdminDlg() { } void CConfigAdminDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDT_NAME1, m_name_01); DDX_Text(pDX, IDC_EDT_NAME2, m_name_02); DDX_Text(pDX, IDC_EDT_NAME3, m_name_03); DDX_Text(pDX, IDC_EDT_PHONE1, m_phone_01); DDX_Text(pDX, IDC_EDT_PHONE2, m_phone_02); DDX_Text(pDX, IDC_EDT_PHONE3, m_phone_03); DDX_Text(pDX, IDC_EDT_MAIL1, m_mail_01); DDX_Text(pDX, IDC_EDT_MAIL2, m_mail_02); DDX_Text(pDX, IDC_EDT_MAIL3, m_mail_03); } BEGIN_MESSAGE_MAP(CConfigAdminDlg, CDialog) ON_EN_KILLFOCUS(IDC_EDT_NAME1, OnEnKillfocusEdtName1) ON_EN_KILLFOCUS(IDC_EDT_PHONE1, OnEnKillfocusEdtPhone1) ON_EN_KILLFOCUS(IDC_EDT_MAIL1, OnEnKillfocusEdtMail1) ON_EN_KILLFOCUS(IDC_EDT_NAME2, OnEnKillfocusEdtName2) ON_EN_KILLFOCUS(IDC_EDT_PHONE2, OnEnKillfocusEdtPhone2) ON_EN_KILLFOCUS(IDC_EDT_MAIL2, OnEnKillfocusEdtMail2) ON_EN_KILLFOCUS(IDC_EDT_NAME3, OnEnKillfocusEdtName3) ON_EN_KILLFOCUS(IDC_EDT_PHONE3, OnEnKillfocusEdtPhone3) ON_EN_KILLFOCUS(IDC_EDT_MAIL3, OnEnKillfocusEdtMail3) END_MESSAGE_MAP() // CConfigAdminDlg ¸Þ½ÃÁö 󸮱âÀÔ´Ï´Ù. BOOL CConfigAdminDlg::OnInitDialog() { CConfigSubDlg::OnInitDialog(); // TODO: ¿©±â¿¡ Ãß°¡ ÃʱâÈ­ ÀÛ¾÷À» Ãß°¡ÇÕ´Ï´Ù. m_name_01 = COptions::GetOption(OPTION_NAME_01); m_name_02 = COptions::GetOption(OPTION_NAME_02); m_name_03 = COptions::GetOption(OPTION_NAME_03); m_phone_01 = COptions::GetOption(OPTION_PHONE_01); m_phone_02 = COptions::GetOption(OPTION_PHONE_02); m_phone_03 = COptions::GetOption(OPTION_PHONE_03); m_mail_01 = COptions::GetOption(OPTION_MAIL_01); m_mail_02 = COptions::GetOption(OPTION_MAIL_02); m_mail_03 = COptions::GetOption(OPTION_MAIL_03); UpdateData(FALSE); return TRUE; // return TRUE unless you set the focus to a control // ¿¹¿Ü: OCX ¼Ó¼º ÆäÀÌÁö´Â FALSE¸¦ ¹ÝÈ¯ÇØ¾ß ÇÕ´Ï´Ù. } void CConfigAdminDlg::OnEnKillfocusEdtName1() { if (m_show) { CheckName(IDC_EDT_NAME1); } } void CConfigAdminDlg::OnEnKillfocusEdtPhone1() { if (m_show) { CheckPhone(IDC_EDT_PHONE1); } } void CConfigAdminDlg::OnEnKillfocusEdtMail1() { if (m_show) { CheckMail(IDC_EDT_MAIL1); } } void CConfigAdminDlg::OnEnKillfocusEdtName2() { if (m_show) { CheckName(IDC_EDT_NAME2); } } void CConfigAdminDlg::OnEnKillfocusEdtPhone2() { if (m_show) { CheckPhone(IDC_EDT_PHONE2); } } void CConfigAdminDlg::OnEnKillfocusEdtMail2() { if (m_show) { CheckMail(IDC_EDT_MAIL2); } } void CConfigAdminDlg::OnEnKillfocusEdtName3() { if (m_show) { CheckName(IDC_EDT_NAME3); } } void CConfigAdminDlg::OnEnKillfocusEdtPhone3() { if (m_show) { CheckPhone(IDC_EDT_PHONE3); } } void CConfigAdminDlg::OnEnKillfocusEdtMail3() { if (m_show) { CheckMail(IDC_EDT_MAIL3); } } bool CConfigAdminDlg::CheckName(int id) { CString szValue; GetDlgItemText(id , szValue); if (szValue.GetLength()>0) { if (szValue.GetLength()>10) { AfxMessageBox("°ü¸®ÀÚ À̸§Àº ÇѱÛ5ÀÚ(¿µ¹®10ÀÚ) ÀÌÇÏ·Î ÀÔ·ÂÇϽʽÿÀ."); DeleteAndSetFocus(id); return false; } } return true; } bool CConfigAdminDlg::CheckPhone(int id) { CString szValue; GetDlgItemText(id , szValue); if (szValue.GetLength()>0) { if (szValue.GetLength()>12) { AfxMessageBox("ÇÚµåÆù ¹øÈ£´Â 12ÀÚ¸® ¼ýÀÚ·Î ÀÔ·ÂÇϽʽÿÀ."); DeleteAndSetFocus(id); return false; } for (int i=0; i < szValue.GetLength(); i++) { if (FALSE==isdigit(szValue.GetAt(i))) { AfxMessageBox("ÇÚµåÆù ¹øÈ£´Â 12ÀÚ¸® ¼ýÀÚ·Î ÀÔ·ÂÇϽʽÿÀ."); DeleteAndSetFocus(id); return false; } } } return true; } bool CConfigAdminDlg::CheckMail(int id) { CString szValue; GetDlgItemText(id , szValue); if (szValue.GetLength()>0) { if (szValue.GetLength()>50) { AfxMessageBox("°ü¸®ÀÚ ¸ÞÀÏÁÖ¼Ò´Â ¿µ¹®50ÀÚ ÀÌÇÏ·Î ÀÔ·ÂÇϽʽÿÀ."); DeleteAndSetFocus(id); return false; } REXI_Search rexs; REXI_DefErr err; err= rexs.SetRegexp("[a-zA-Z0-9]+@[a-zA-Z0-9]+.[a-zA-Z0-9]+"); int nMatchLen=0; bool bEosFound=false; bool bRightEmail=false; const char* pcsValue = szValue; while(rexs.Find(pcsValue ,nMatchLen,bEosFound)) { return true; } if (!bRightEmail) { AfxMessageBox("¸ÞÀÏÁÖ¼Ò¸¦ Á¤È®È÷ ÀÔ·ÂÇϽʽÿÀ." ); DeleteAndSetFocus(id); return false; } } return true; } void CConfigAdminDlg::DeleteAndSetFocus(int id) { UpdateData(FALSE); this->GetDlgItem(id)->SetFocus(); }