//////////////////////////////////////////////////////////////// HINSTANCE hInsta=::LoadLibrary("language\\XSelf.dll"); if(hInsta!=NULL) AfxSetResourceHandle(hInsta); ///////////////////////////////////////////////////////////////////////// char pszExeName[32]="OnXDC XSelf"; ::CreateMutex(NULL, TRUE, m_pszExeName); if (GetLastError()==ERROR_ALREADY_EXISTS) { //Find our previous application‘s main window CWnd *pPrevWnd=CWnd::GetDesktopWindow()->GetWindow(GW_CHILD); while (pPrevWnd) { //Does this window have the previous instance tag set? if (::GetProp(pPrevWnd->GetSafeHwnd(), m_pszExeName)) { //found window,now set focus to the window //first restore window if it is currently iconic if (pPrevWnd->IsIconic()) pPrevWnd->ShowWindow(SW_RESTORE); //set focus to main window pPrevWnd->SetForegroundWindow(); //if window has a pop-up window, set focus to pop-up pPrevWnd->GetLastActivePopup()->SetForegroundWindow(); return FALSE; } //Did not find window,get next window in list pPrevWnd = pPrevWnd->GetWindow(GW_HWNDNEXT); } return FALSE; }
时间: 2024-10-13 05:06:13