/////////////////////////////////////////////////////////////////////////////// /* File: yntoall.cpp Description: Implements the YesNoToAll dialog. Revision History: Date Description Programmer -------- --------------------------------------------------- ---------- 05/28/97 Initial creation. BrianAu */ /////////////////////////////////////////////////////////////////////////////// #include "pch.h" #pragma hdrstop #include "yntoall.h" #include "resource.h" /////////////////////////////////////////////////////////////////////////////// /* Function: YesNoToAllDialog::YesNoToAllDialog Description: Class constructor. Arguments: idDialogTemplate - ID number for the dialog's resource template. Returns: Nothing. Revision History: Date Description Programmer -------- --------------------------------------------------- ---------- 05/28/97 Initial creation. BrianAu */ /////////////////////////////////////////////////////////////////////////////// YesNoToAllDialog::YesNoToAllDialog( UINT idDialogTemplate ) : m_idDialogTemplate(idDialogTemplate), m_hwndCbxApplyToAll(NULL), m_hwndTxtMsg(NULL), m_bApplyToAll(FALSE), m_pszTitle(NULL), m_pszText(NULL) { DBGTRACE((DM_VIEW, DL_HIGH, TEXT("YesNoToAllDialog::YesNoToAllDialog"))); // // Do nothing. // } /////////////////////////////////////////////////////////////////////////////// /* Function: YesNoToAllDialog::~YesNoToAllDialog Description: Class destructor. Arguments: None. Returns: Nothing. Revision History: Date Description Programmer -------- --------------------------------------------------- ---------- 05/28/97 Initial creation. BrianAu */ /////////////////////////////////////////////////////////////////////////////// YesNoToAllDialog::~YesNoToAllDialog( VOID ) { DBGTRACE((DM_VIEW, DL_HIGH, TEXT("YesNoToAllDialog::YesNoToAllDialog"))); // // Call the Destroy() function to destroy the progress dialog window. // delete[] m_pszTitle; delete[] m_pszText; } /////////////////////////////////////////////////////////////////////////////// /* Function: YesNoToAllDialog::Create Description: Creates the dialog. Arguments: hInstance - Instance handle for the DLL containing the dialog resource template. hwndParent - Parent window for dialog. lpszTitle - Title for dialog. lpszText - Text message for dialog. Returns: TRUE = Dialog was created. FALSE = Dialog was not created. Revision History: Date Description Programmer -------- --------------------------------------------------- ---------- 05/28/97 Initial creation. BrianAu */ /////////////////////////////////////////////////////////////////////////////// INT_PTR YesNoToAllDialog::CreateAndRun( HINSTANCE hInstance, HWND hwndParent, LPCTSTR pszTitle, LPCTSTR pszText ) { DBGASSERT((NULL != pszTitle)); DBGASSERT((NULL != pszText)); // // Set these in member variables so that the text can be set in the // dialog in response to WM_INITDIALOG. // m_pszTitle = StringDup(pszTitle); m_pszText = StringDup(pszText); return DialogBoxParam(hInstance, MAKEINTRESOURCE(m_idDialogTemplate), hwndParent, DlgProc, (LPARAM)this); } /////////////////////////////////////////////////////////////////////////////// /* Function: YesNoToAllDialog::DlgProc [static] Description: Message procedure for the dialog. Arguments: Standard Win32 message proc arguments. Returns: Standard Win32 message proc return values. Revision History: Date Description Programmer -------- --------------------------------------------------- ---------- 05/28/97 Initial creation. BrianAu */ /////////////////////////////////////////////////////////////////////////////// INT_PTR CALLBACK YesNoToAllDialog::DlgProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam ) { // // Retrieve the dialog object's ptr from the window's userdata. // Place there in response to WM_INITDIALOG. // YesNoToAllDialog *pThis = (YesNoToAllDialog *)GetWindowLongPtr(hwnd, DWLP_USER); switch(uMsg) { case WM_INITDIALOG: // // Store "this" ptr in window's userdata. // SetWindowLongPtr(hwnd, DWLP_USER, (INT_PTR)lParam); pThis = (YesNoToAllDialog *)lParam; // // Center popup on the desktop. // ::CenterPopupWindow(hwnd, GetDesktopWindow()); pThis->m_hwndTxtMsg = GetDlgItem(hwnd, IDC_TXT_YNTOALL); pThis->m_hwndCbxApplyToAll = GetDlgItem(hwnd, IDC_CBX_YNTOALL); SetWindowText(pThis->m_hwndTxtMsg, pThis->m_pszText); SetWindowText(hwnd, pThis->m_pszTitle); SendMessage(pThis->m_hwndCbxApplyToAll, BM_SETCHECK, pThis->m_bApplyToAll ? (WPARAM)BST_CHECKED : (WPARAM)BST_UNCHECKED, 0); return TRUE; case WM_COMMAND: switch(LOWORD(wParam)) { case IDCANCEL: case IDYES: case IDNO: DBGASSERT((NULL != pThis)); pThis->m_bApplyToAll = (BST_CHECKED == SendMessage(pThis->m_hwndCbxApplyToAll, BM_GETCHECK, 0, 0)); EndDialog(hwnd, LOWORD(wParam)); break; } break; } return FALSE; }