home *** CD-ROM | disk | FTP | other *** search
- // Modeless.cpp : implementation file
- //
-
- // This is a part of the Microsoft Foundation Classes C++ library.
- // Copyright (C) 1992-1998 Microsoft Corporation
- // All rights reserved.
- //
- // This source code is only intended as a supplement to the
- // Microsoft Foundation Classes Reference and related
- // electronic documentation provided with the library.
- // See these sources for detailed information regarding the
- // Microsoft Foundation Classes product.
-
- /*****************************************************************************
- Purpose:
- Implements CModelessDialog, a reusable class for creating modeless
- dialogs.
-
- Functions:
- CModelessDialog::CModelessDialog() -- constructor
- CModelessDialog::~CModelessDialog() -- destructor
- CModelessDialog::OnCancel() -- WM_COMMAND IDCANCEL handler
- CModelessDialog::OnOK() -- WM_COMMAND IDOK handler
- CModelessDialog::PostNcDestroy() -- called after WM_NCDESTROY
-
- Development Team:
- Mary Kirtland
- Ported to 32-bit by:
- Mike Hedley
- Created by Microsoft Product Support Services, Premier ISV Support
- Copyright (c) 1998 Microsoft Corporation. All rights reserved.
- \****************************************************************************/
-
- #include "stdafx.h"
- #include "modeless.h"
-
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
-
- /////////////////////////////////////////////////////////////////////////////
- // CModelessDialog
-
- IMPLEMENT_DYNAMIC(CModelessDialog, CDialog)
-
- BEGIN_MESSAGE_MAP(CModelessDialog, CDialog)
- //{{AFX_MSG_MAP(CModelessDialog)
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
-
- /////////////////////////////////////////////////////////////////////////////
- // CModelessDialog Construction/Destruction
-
- CModelessDialog::CModelessDialog()
- {
- }
-
- CModelessDialog::~CModelessDialog()
- {
- }
-
- void CModelessDialog::PostNcDestroy()
- {
- delete this;
- }
-
- /////////////////////////////////////////////////////////////////////////////
- // CModelessDialog::OnCancel
- // Modeless dialogs must not call EndDialog(), as CDialog::OnCancel()
- // does. All we need to do is destroy the window.
-
- void CModelessDialog::OnCancel()
- {
- DestroyWindow();
- }
-
- /////////////////////////////////////////////////////////////////////////////
- // CModelessDialog::OnOK
- // Modeless dialogs must not call EndDialog(), as CDialog::OnOK() does
- // We retrieve data from the controls using DDX, then destroy the
- // window.
-
- void CModelessDialog::OnOK()
- {
- if (!UpdateData(TRUE))
- {
- TRACE0("UpdateData failed -- modeless dialog terminate\n");
- return;
- }
- DestroyWindow();
- }
-