CWnd* PASCAL FindWindow( LPCTSTR lpszClassName, LPCTSTR lpszWindowName ); |
CWnd* GetLastActivePopup( ) |
BOOL IsIconic( ) |
BOOL ShowWindow( int nCmdShow ) |
///////////////////////////////////////////////////////////////////////////// // CInstanceApp initialization BOOL CInstanceApp::InitInstance() { if (!FirstInstance()) return FALSE; AfxEnableControlContainer(); #ifdef _AFXDLL Enable3dControls(); // Call this when using MFC in a shared DLL #else Enable3dControlsStatic(); // Call this when linking to MFC statically #endif CInstanceDlg dlg; m_pMainWnd = &dlg; int nResponse = dlg.DoModal(); if (nResponse == IDOK) { // TODO: Place code here to handle when the dialog is // dismissed with OK } else if (nResponse == IDCANCEL) { // TODO: Place code here to handle when the dialog is // dismissed with Cancel } // Since the dialog has been closed, return FALSE so that we exit the // application, rather than start the application''s message pump. return FALSE; } BOOL CInstanceApp::FirstInstance() { CWnd *pWndPrev, *pWndChild; // Determine if another window with our class name and Window title exists // The title "Instance " is set up latter, in the InitDialog function. if (pWndPrev = CWnd::FindWindow(NULL, "Instance ")) { pWndChild = pWndPrev- >GetLastActivePopup(); // if so, does it have any popups? if (pWndPrev- >IsIconic()) pWndPrev- >ShowWindow(SW_RESTORE); // If iconic, restore the main window pWndChild- >SetForegroundWindow(); // Bring the window to the foreground return FALSE; } else return TRUE; // First instance. Proceed as normal. } |