139 lines
3.6 KiB
C++
139 lines
3.6 KiB
C++
// WarningDlg.cpp : implementation file
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
|
|
#ifdef _DEBUG
|
|
#define new DEBUG_NEW
|
|
#undef THIS_FILE
|
|
static char THIS_FILE[] = __FILE__;
|
|
#endif
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CWarningDlg dialog
|
|
|
|
CWarningDlg::CWarningDlg(UINT nWarningIds, UINT nTitleIds /*= 0*/, CWnd* pParent /*=NULL*/)
|
|
: CDialog(CWarningDlg::IDD, pParent),
|
|
m_nWarningIds( nWarningIds ),
|
|
m_nTitleIds( nTitleIds )
|
|
{
|
|
//{{AFX_DATA_INIT(CWarningDlg)
|
|
//}}AFX_DATA_INIT
|
|
m_sWarning = _T("");
|
|
m_bEnableShowAgainCheckbox = FALSE; // default is hide checkbox
|
|
m_bDoNotShowAgainCheck = FALSE; // default is show checkbox again
|
|
}
|
|
|
|
CWarningDlg::CWarningDlg(LPCTSTR szWarningMessage, UINT nTitleIds /*= 0*/, CWnd* pParent /*=NULL*/)
|
|
: CDialog(CWarningDlg::IDD, pParent),
|
|
m_nWarningIds( 0 ),
|
|
m_nTitleIds( nTitleIds )
|
|
{
|
|
//{{AFX_DATA_INIT(CWarningDlg)
|
|
m_sWarning = _T("");
|
|
//}}AFX_DATA_INIT
|
|
m_bEnableShowAgainCheckbox = FALSE; // default is hide checkbox
|
|
m_bDoNotShowAgainCheck = FALSE; // default is show checkbox again
|
|
m_sWarning = szWarningMessage;
|
|
}
|
|
|
|
void CWarningDlg::DoDataExchange(CDataExchange* pDX)
|
|
{
|
|
CDialog::DoDataExchange(pDX);
|
|
//{{AFX_DATA_MAP(CWarningDlg)
|
|
DDX_Control(pDX, IDC_EDIT_EXPLANATION, m_editWarning);
|
|
//}}AFX_DATA_MAP
|
|
}
|
|
|
|
BEGIN_MESSAGE_MAP(CWarningDlg, CDialog)
|
|
//{{AFX_MSG_MAP(CWarningDlg)
|
|
ON_BN_CLICKED(IDYES, OnYes)
|
|
ON_BN_CLICKED(IDNO, OnNo)
|
|
//}}AFX_MSG_MAP
|
|
END_MESSAGE_MAP()
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CWarningDlg Operations
|
|
|
|
void CWarningDlg::EnableDoNotShowAgainCheck( BOOL bEnable )
|
|
{
|
|
m_bEnableShowAgainCheckbox = bEnable;
|
|
}
|
|
|
|
BOOL CWarningDlg::GetDoNotShowAgainCheck()
|
|
{
|
|
if (m_bEnableShowAgainCheckbox)
|
|
return m_bDoNotShowAgainCheck;
|
|
return FALSE;
|
|
}
|
|
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
// CWarningDlg message handlers
|
|
|
|
BOOL CWarningDlg::OnInitDialog()
|
|
{
|
|
// Load the warning string for display in the dialog
|
|
// if m_nWarningIds == 0, that means we already load
|
|
// the message string in constructor
|
|
if (m_nWarningIds)
|
|
{
|
|
m_sWarning.FormatMessage( m_nWarningIds );
|
|
}
|
|
|
|
GetDlgItem(IDC_EDIT_EXPLANATION)->SetWindowText(m_sWarning);
|
|
|
|
// Load the title, if any
|
|
if (m_nTitleIds)
|
|
{
|
|
try { m_sTitle.LoadString( m_nTitleIds ); }
|
|
catch( CMemoryException *pe )
|
|
{
|
|
ASSERT( FALSE );
|
|
pe->Delete();
|
|
m_sTitle.Empty();
|
|
}
|
|
if (!m_sTitle.IsEmpty())
|
|
{
|
|
SetWindowText( m_sTitle );
|
|
}
|
|
}
|
|
|
|
// Determine whether the "Do not show this again" checkbox should be displayed.
|
|
SAFE_SHOWWINDOW( IDC_CHECKNOTAGAIN, m_bEnableShowAgainCheckbox ? SW_SHOW : SW_HIDE );
|
|
|
|
CDialog::OnInitDialog();
|
|
// default to NO since user is doing something questionable
|
|
// which requires us to ask if its really OK.
|
|
GetDlgItem(IDNO)->SetFocus();
|
|
SetDefID( IDNO );
|
|
|
|
return 0; // return TRUE unless you set the focus to a control
|
|
// EXCEPTION: OCX Property Pages should return FALSE
|
|
}
|
|
|
|
void CWarningDlg::OnYes()
|
|
{
|
|
if (m_bEnableShowAgainCheckbox)
|
|
{
|
|
if (1 == ((CButton*)GetDlgItem( IDC_CHECKNOTAGAIN ))->GetCheck())
|
|
m_bDoNotShowAgainCheck = TRUE;
|
|
else
|
|
m_bDoNotShowAgainCheck = FALSE;
|
|
}
|
|
|
|
EndDialog( IDYES );
|
|
}
|
|
|
|
void CWarningDlg::OnNo()
|
|
{
|
|
if (m_bEnableShowAgainCheckbox)
|
|
{
|
|
if (1 == ((CButton*)GetDlgItem( IDC_CHECKNOTAGAIN ))->GetCheck())
|
|
m_bDoNotShowAgainCheck = TRUE;
|
|
else
|
|
m_bDoNotShowAgainCheck = FALSE;
|
|
}
|
|
|
|
EndDialog( IDNO );
|
|
}
|