Nichtmodaler Dialog



  • Hallo ...

    ich habe mir einen nicht-modalen Dialog erzeugt und der ist jetzt immer im Vordergrund gegenüber dem Main-Window.

    Es soll natürlich nur im Vordergrund sein, wenn auch der Focus drauf ist. Wie kann ich das machen?

    Hier mal die Klasse, die den Dialog erzeugen soll.

    CEventWindow::CEventWindow(CWnd* pParent /*=NULL*/)
    : CDialog(CEventWindow::IDD, pParent), m_nID(CEventWindow::IDD)
    {
    	ASSERT(pParent!=NULL);
    
    	m_pParent=pParent;
    }
    
    // CEventWindow-Meldungshandler
    
    BOOL CEventWindow::Create(void)
    {
    
    	return CDialog::Create(m_nID, m_pParent);
    }
    

    Zum Erzeugen rufe ich dann den Konstruktor und die Create-Methode auf...



  • Ich habe jetzt auch shcon die Methode SetWindowPos entdeckt. Aber funktionieren tut es noch immer nicht.

    Habe so versucht, dass Parent-Window als TOPMOST zu setzen. Gegenüber allen anderen Fenstern (z.B. Firefox, word etc.) geht das, nur nicht gegenüber dem nicht-modalen Dialog.

    CRect rect;
    
    // get the current window size and position
    GetWindowRect( rect ); 
    
    ::SetWindowPos(m_hWnd ,  // handle to window
                   HWND_TOPMOST,  // placement-order handle
              rect.left,     // horizontal position
              rect.top,      // vertical position
              rect.Width(),  // width
              rect.Height(), // height
              SWP_SHOWWINDOW); // window-positioning options); 
    
    	}
    


  • Hi,

    habe das selbe Problem aber noch keine Lösung gefunden.
    Im Forum kam aber die Anregung, auch das Parent-Window als nichtmodalen Dialog zu gestalten und das eigentliche Hauptfenster zu verbergen.

    Gruß, Thomas



  • Thomas++ schrieb:

    Hi,

    habe das selbe Problem aber noch keine Lösung gefunden.
    Im Forum kam aber die Anregung, auch das Parent-Window als nichtmodalen Dialog zu gestalten und das eigentliche Hauptfenster zu verbergen.

    Gruß, Thomas

    Ja das ist mit Sicherheit eine Möglichkeit, aber gefallen tut sie mir ja nicht so umbedingt. 😢

    Es gibt zig Beiträge hier im Forum, dass es mit SetWindowPos(...) funktionieren soll, aber bei mir irgendwie nicht. Muss ich denn noch mehr machen außer diese Methode aufzurufen?



  • Hat keiner eine Idee, wie ich das Problem lösen kann ...? 😕



  • [Idee] SetForegroundWindow() [/Idee] ?



  • isabeau schrieb:

    [Idee] SetForegroundWindow() [/Idee] ?

    Bewirkt leider nix ... 😢 - Hatte ich auch schon mal ausprobiert...


Anmelden zum Antworten