Frage

Gibt es eine Möglichkeit, ein modeless Dialogfeld in C ++ MFC zu erstellen, die auf den anderen Fenster in der Anwendung immer bleibt? Ich bin ein bisschen wie das Dialogfeld Suchen in Visual Studio 2005 zu denken -., Wo er an der Spitze bleibt, aber man kann immer noch den darunter liegenden Text bearbeitet

(Wenn es einen Unterschied macht, es ist nicht MDI, es ist eine dialogbasierte Anwendung)

War es hilfreich?

Lösung

Nish :

  

Erstellen des Dialog Aufenthalt auf

     

Haben Sie nicht Programme gesehen, die haben   eine "always-stay-on-top" Option? Gut   die unglaubliche Sache ist, dass man   machen Sie Ihren Dialog Aufenthalt auf der Oberseite mit nur   eine Codezeile. Einfach gesagt die   in Ihrer Dialogklasse folgende Zeile   OnInitDialog () Funktion.

SetWindowPos(&this->wndTopMost,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);
     

Im Grunde, was wir tun, ist zu verwenden,   die SetWindowPos-Funktion zu ändern   die Z-Ordnung unseres Dialogfenster. Wir   machen unseren Dialog Aufenthalt über allen   andere Fenster, indem sie es an die Spitze bewegt   die Z-Ordnung. Nun, auch wenn Sie   aktiviert ein anderes Fenster, unser Fenster   wird an der Spitze bleiben. Aber ich würde Ihnen raten,   um sicherzustellen, dass Sie genau wissen, was Sie   tun, wenn Sie dies tun, denn es ist   könnten die Menschen ärgern, wenn sie nicht bekommen können   Ihr Fenster aus dem Weg, wenn sie   das tun wollen.

Wie Sie in den Kommentaren erwähnt, macht die obige Zeile das Fenster oben auf jede Anwendung sitzen. Sie werden tun müssen,

SetWindowPos(&this->wndTop,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);

Um ein Fenster auf der Oberseite nur Ihre Anwendung sitzt zu machen.

-Adam

Andere Tipps

Die akzeptierte Antwort nicht für Windows 7 oder höher. (Oder vielleicht its me) Aber macht das nicht modalen Dialog als Popup statt Kind löst es. Es wird nun WRT Hauptdialogfenster positioniert, aber Sie können Code schreiben, überall zu beschränken. die keine Grenze oder obere Leiste macht es ein einfaches Fenster.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top