home *** CD-ROM | disk | FTP | other *** search
- // Dlgcbar.cpp : Defines the class behaviors for the application.
- //
- // 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.
-
- #include "stdafx.h"
-
- #include "resource.h"
- #include "dlgcbar.h"
- #include "aboutdlg.h"
- #include "wndlist.h"
-
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #undef THIS_FILE
- static char THIS_FILE[] = __FILE__;
- #endif
-
- /////////////////////////////////////////////////////////////////////////////
- // CTheApp
-
- CTheApp theApp;
-
- BEGIN_MESSAGE_MAP(CTheApp, CWinApp)
- //{{AFX_MSG_MAP(CTheApp)
- ON_COMMAND(ID_HELP_ABOUT, OnHelpAbout)
- // NOTE - the ClassWizard will add and remove mapping macros here.
- // DO NOT EDIT what you see in these blocks of generated code!
- //}}AFX_MSG_MAP
- END_MESSAGE_MAP()
-
- /////////////////////////////////////////////////////////////////////////////
- // CTheApp Constructors/Destructors
-
- CTheApp::CTheApp()
- {
- }
-
- CTheApp::~CTheApp()
- {
- }
-
- /////////////////////////////////////////////////////////////////////////////
- // CTheApp::FirstInstance
- // FirstInstance checks for an existing instance of the application.
- // If one is found, it is activated.
- //
- // This function uses a technique similar to that described in KB
- // article Q109175 to locate the previous instance of the application.
- // However, instead of searching for a matching class name, it searches
- // for a matching caption. This allows us to use the normal dialog
- // class for our main window. It assumes that the AFX_IDS_APP_TITLE
- // string resource matches the caption specified in the dialog template.
-
- BOOL CTheApp::FirstInstance()
- {
- CString strCaption;
- strCaption.LoadString(AFX_IDS_APP_TITLE);
-
- CWnd* pwndFirst = CWnd::FindWindow((LPCSTR)(DWORD)WC_DIALOG,
- strCaption);
- if (pwndFirst)
- {
- // another instance is already running - activate it
- CWnd* pwndPopup = pwndFirst->GetLastActivePopup();
- pwndFirst->SetForegroundWindow();
- if (pwndFirst->IsIconic())
- pwndFirst->ShowWindow(SW_SHOWNORMAL);
- if (pwndFirst != pwndPopup)
- pwndPopup->SetForegroundWindow();
- return FALSE;
- }
- else
- {
- // this is the first instance
- return TRUE;
- }
- }
-
- /////////////////////////////////////////////////////////////////////////////
- // CTheApp::InitInstance
- // InitInstance performs per-instance initialization of the DLGCBAR
- // application. If an instance of the application is already running,
- // it activates that instance. Otherwise, it creates the modeless
- // dialog which serves as the application's interface.
-
- BOOL CTheApp::InitInstance()
- {
- if (!FirstInstance())
- return FALSE;
-
- // Create main window
- TRY
- {
- CWndListDlg* pMainWnd = new CWndListDlg;
- m_pMainWnd = pMainWnd;
- return pMainWnd->Create();
- }
- CATCH_ALL(e)
- {
- TRACE0("Failed to create main dialog\n");
- return FALSE;
- }
- END_CATCH_ALL
-
- }
-
- /////////////////////////////////////////////////////////////////////////////
- // CTheApp::OnHelpAbout
- // OnHelpAbout displays the application's about box.
-
- void CTheApp::OnHelpAbout()
- {
- CAboutDlg dlg(m_pMainWnd);
- dlg.DoModal();
- }
-