Nicht modalen Dialog nicht in der Taskleiste anzeigen
-
Hallo.
Habe einen nicht modalen Dialog. Nun möchte ich dass dieser nicht in der Taskleiste erscheint. Nun gibt es bei den Eigenschaften in VS einen Punkt der sich Anwendungsfenter nennt. Gibt an, dass ein sichtbares Dialogfeld einen Eintrag in der Aufgabenleiste hat - so die Erklärung. Diesen Punkt habe ich auf false. Der Dialog wird aber trotzdem in der Taskleiste angezeigt.
Über
m_pDialog->ModifyStyleEx( 0, WS_EX_TOOLWINDOW );
geht es zwar. Aber dabei wird auch der Rahmen des Dialogs geändert. Was aber nicht in meinem Sinne ist. Gibts da noch ne andere Möglichkeit?
-
Benutzt du WS_EX_APPWINDOW und schaust dir weiterführend den Artikel an.
-
Oder aber einfach bei Create als Parent this mitegeben. Dann gehts auch.
-
Hallo. Jo das mit dem this übergeben klappt auch. Allerdings wird da mein Dialog immer ganz links oben angezeigt statt wie bisher in der Mitte des Bildschirms. Woran liegt das?
-
Weiß denn keiner wie ich den zu öffnenden Dialog in der Mitte meiner Applikation anzeige? Soollte so wein wie bei einem Modalen Dialog auch!
-
SetWindowPos?
-
SetWindowPos
Da muss ich ja aber Koordinaten angeben. Ich will es ja aber relativ zum aufrufenden Dialog. Gibts da keine Option?
-
Du hast doch aber das Parent!?
-
Sorry ich versteht zwar was du mir sagen willst. Allerdings weiß ich nicht genau wie.
Wie bekomme ich die Koordinaten vom Elternfenster. GetWindowPos gibts nicht.
Und was gebe ich bei der Größe an.Kannst du mir nicht einfach kurz ein Beispiel zeigen.
-
Es gibt CWnd::GetClientRect und die Klasse CRect bietet auch noch einige hilfreiche Funktionen z.B.: CRect::OffsetRect. Damit hast Du eigentlich alles was du brauchst um die Größe des Parents zu ermitteln und deinen Dialog entsprechend zu verschieben. Du kannst ja mal probieren, für ein Bsp. reicht meine Zeit gerade nicht, sorry.