Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

138 lines
3.6 KiB

// 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 );
}