CFormView Fenster in den Vordergrund bringen



  • Hallo,

    ich schreibe ein Programm, das in einer NamedPipe darauf wartet, dass eine Nachricht gesendet wird. Wird eine Nachricht empfangen, soll das Fenster sich in den Vordergrund vor alle anderen Fenster schieben. Ich habe schon einiges gefunden, auch in diesem Forum, bin aber zu keiner funktionierenden Lösung gekommen. Benutze folgenden Code in InitInstance() der App

    CString	strWndTitle = "Communication Server";
    	// der Titel wird erst eingetragen, wenn das Fenster initialisiert ist
    
    	// Gucken ob Programm mit dem Fenstertitel bereits läuft
    	HWND hwnd = FindWindow( NULL, strWndTitle.GetBuffer() );
    
    	if(hwnd)
    	{
            CWnd pWndPrev;
    		// das bereits bestehende Programm dem aktuellen Programm zuweisen
    		pWndPrev.Attach(hwnd);
    		// das bereits bestehende Programm in den Vordergrund holen
    	    pWndPrev.SetForegroundWindow();
    		// das bereits bestehende Programm wieder vom aktuellen Programm lösen
    		pWndPrev.Detach();
    		// Da das Return sich auf die InitInstance-Funktion des 2ten Programm bezieht
    		// wird dieses dann geschlossen, hätte man vorher nicht pWndPrev.Detach() gemacht,
    		// würde das erste Programm auch geschlossen werden
            return FALSE;
    	}
    
    	// hier wird jetzt der Fenstertitel eingetragen (Ermittlung weiter oben)
    	m_pMainWnd->SetWindowText( strWndTitle );
    

    Muss ich das vielleicht noch an einer anderen Stelle schreiben? Oder gibt es eine andere Möglichkeit. Wäre nett, wenn jemand was weiß und mich ncht nur an andere Themen verweist 😞

    Vielen Dank!


Anmelden zum Antworten