2025-11-27 16:46:48 +09:00

254 lines
4.9 KiB
C++

// OptionsDlg.cpp : implementation file
//
#include "stdafx.h"
#include "addressbook.h"
#include "OptionsDlg.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// COptionsDlg dialog
COptionsDlg::COptionsDlg(CWnd* pParent /*=NULL*/)
: CDialog(COptionsDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(COptionsDlg)
m_sCaption = _T("");
m_sDest = _T("");
m_sEntry = _T("");
m_bChk1 = FALSE;
m_bChk2 = FALSE;
m_bChk3 = FALSE;
//}}AFX_DATA_INIT
m_bDefault=TRUE;
m_nSel1=0;
m_nSel2=0;
m_nSel3=0;
}
void COptionsDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(COptionsDlg)
DDX_Control(pDX, IDC_EDIT3, m_edt3);
DDX_Control(pDX, IDC_EDIT2, m_edt2);
DDX_Control(pDX, IDC_EDIT1, m_edt1);
DDX_Control(pDX, IDC_COMBO3, m_cmb3);
DDX_Control(pDX, IDC_COMBO2, m_cmb2);
DDX_Control(pDX, IDC_COMBO1, m_cmb1);
DDX_Text(pDX, IDC_EDIT_CAPTION, m_sCaption);
DDX_Text(pDX, IDC_EDIT_DEST, m_sDest);
DDX_Text(pDX, IDC_EDIT_ENTRY, m_sEntry);
DDX_Check(pDX, IDC_CHECK1, m_bChk1);
DDX_Check(pDX, IDC_CHECK2, m_bChk2);
DDX_Check(pDX, IDC_CHECK3, m_bChk3);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(COptionsDlg, CDialog)
//{{AFX_MSG_MAP(COptionsDlg)
ON_BN_CLICKED(IDC_RADIO_DEFAULT, OnRadioDefault)
ON_BN_CLICKED(IDC_RADIO_CUSTOM, OnRadioCustom)
ON_BN_CLICKED(IDC_CHECK1, OnCheck1)
ON_BN_CLICKED(IDC_CHECK2, OnCheck2)
ON_BN_CLICKED(IDC_CHECK3, OnCheck3)
ON_CBN_SELCHANGE(IDC_COMBO1, OnSelchangeCombo1)
ON_CBN_SELCHANGE(IDC_COMBO2, OnSelchangeCombo2)
ON_CBN_SELCHANGE(IDC_COMBO3, OnSelchangeCombo3)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// COptionsDlg message handlers
void COptionsDlg::OnRadioDefault()
{
m_bDefault=TRUE;
UpdateControls();
}
void COptionsDlg::OnRadioCustom()
{
m_bDefault=FALSE;
UpdateControls();
}
void COptionsDlg::OnCheck1()
{
UpdateData();
if (!m_bChk1)
{
m_bChk2=m_bChk3=FALSE;
UpdateData(FALSE);
GetDlgItem(IDC_CHECK2)->EnableWindow(FALSE);
GetDlgItem(IDC_CHECK3)->EnableWindow(FALSE);
}
else
{
GetDlgItem(IDC_CHECK2)->EnableWindow(TRUE);
}
UpdateControls();
}
void COptionsDlg::OnCheck2()
{
UpdateData();
if (!m_bChk2)
{
m_bChk3=FALSE;
UpdateData(FALSE);
GetDlgItem(IDC_CHECK3)->EnableWindow(FALSE);
}
else
GetDlgItem(IDC_CHECK3)->EnableWindow(TRUE);
UpdateControls();
}
void COptionsDlg::OnCheck3()
{
UpdateControls();
}
void COptionsDlg::OnSelchangeCombo1()
{
//UpdateControls();
}
void COptionsDlg::OnSelchangeCombo2()
{
//UpdateControls();
}
void COptionsDlg::OnSelchangeCombo3()
{
//UpdateControls();
}
BOOL COptionsDlg::IsFirstEnabled()
{
UpdateData();
if (!m_bDefault && m_bChk1)
return TRUE;
else
return FALSE;
}
BOOL COptionsDlg::IsSecondEnabled()
{
if (!m_bDefault && m_bChk2 && IsFirstEnabled())
return TRUE;
else
return FALSE;
}
BOOL COptionsDlg::IsThirdEnabled()
{
if (!m_bDefault && m_bChk3 && IsSecondEnabled())
return TRUE;
else
return FALSE;
}
BOOL COptionsDlg::OnInitDialog()
{
CDialog::OnInitDialog();
CButton* pButton;
if (m_bDefault)
pButton=(CButton*) GetDlgItem(IDC_RADIO_DEFAULT);
else
pButton=(CButton*) GetDlgItem(IDC_RADIO_CUSTOM);
ASSERT(pButton);
pButton->SetCheck(1);
m_cmb1.SetCurSel(0);
m_cmb2.SetCurSel(0);
m_cmb3.SetCurSel(0);
if (m_bChk1)
GetDlgItem(IDC_CHECK2)->EnableWindow(TRUE);
if (m_bChk2)
GetDlgItem(IDC_CHECK3)->EnableWindow(TRUE);
m_cmb1.SetCurSel(m_nSel1);
m_cmb2.SetCurSel(m_nSel2);
m_cmb3.SetCurSel(m_nSel3);
m_edt1.SetWindowText((LPCTSTR) m_sEdit1);
m_edt2.SetWindowText((LPCTSTR) m_sEdit2);
m_edt3.SetWindowText((LPCTSTR) m_sEdit3);
UpdateControls();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void COptionsDlg::UpdateControls()
{
UpdateData();
BOOL bEnable;
if (IsFirstEnabled())
bEnable=TRUE;
else
bEnable=FALSE;
m_cmb1.EnableWindow(bEnable);
m_edt1.EnableWindow(bEnable);
if (IsSecondEnabled())
bEnable=TRUE;
else
bEnable=FALSE;
m_cmb2.EnableWindow(bEnable);
m_edt2.EnableWindow(bEnable);
if (IsThirdEnabled())
bEnable=TRUE;
else
bEnable=FALSE;
m_cmb3.EnableWindow(bEnable);
m_edt3.EnableWindow(bEnable);
}
void COptionsDlg::OnOK()
{
UpdateData(TRUE);
m_nSel1=m_cmb1.GetCurSel();
m_nSel2=m_cmb2.GetCurSel();
m_nSel3=m_cmb3.GetCurSel();
m_options.ulType1=m_bChk1?(m_bDefault?MAPI_TO:m_nSel1+1):NULL;
m_options.ulType2=m_bChk2?(m_bDefault?MAPI_CC:m_nSel2+1):NULL;
m_options.ulType3=m_bChk3?(m_bDefault?MAPI_BCC:m_nSel3+1):NULL;
m_edt1.GetWindowText(m_sEdit1);
m_edt2.GetWindowText(m_sEdit2);
m_edt3.GetWindowText(m_sEdit3);
m_options.sType1=m_sEdit1;
m_options.sType2=m_sEdit2;
m_options.sType3=m_sEdit3;
m_options.sCaption=m_sCaption;
m_options.sDest=m_sDest;
m_options.sNewEntry=m_sEntry;
CDialog::OnOK();
}