Dialog Problem

CodeFatal

Erfahrenes Mitglied
Hi,

ich habe ein Tool geschrieben, welches versteckt im Hintergrund laufen soll.

Ich bin soweit, das ich ein Tray-Icon habe, über das das Tool noch bedienbar bleibt.

Der Dialog ist aber trotz ShowWindow(SW_HIDE) und Einstellung "Sichtbar" auf False im Recourcen Editor immernoch sichtbar und in der Taskleiste vorhanden.

Wie kann ich dieses Fenster verstecken und den Eintrag aus der Taskleiste entfernen?

Ich habe hier zwar einiges über dieses Thema gefunden, aber leider nichts, was mir weitergeholfen hat :(

Ich arbeite mit :Net2003. Die Anwendung ist eine Dialogfeldbasierende MFC-Anwendung.
Der zuversteckende Dialog ist der Hauptdialog, welcher vom System generiert wird.

Hat jemand von euch vielleicht einen Tip? Bin gerade echt aufgeschmissen.

Gruß Michael
 
Das müsste eigentlich mit dem Setzen des WS_EX_TOOLWINDOW und Entfernen des WS_EX_APPWINDOW Extended-Style getan sein.

Ich habe das allerdings nie mit MFC ausprobiert, kann sein, dass das da nicht mitmacht.
 
Hi,
danke für die Antwort werds gleich mal ausprobieren.

Folgendes Hab ich bereits erreicht.

Wenn ich das Window in der OnInitDialog mit SW_HIDE verstecken will klappt es nicht - der Dialog erscheint.
wenn ich aber eine Message mit Postmessage absetze und bei ankommen der Message den Dialog mit SW_HIDE verstecke ist alles so wie ich es möchte...allerdings "flackert" der Dialog einmal kurz auf..

Gruß Michael
 
Hmm...
Das war leider nicht die Lösung :(
Der hat mir jetzt zwar das Layout geändert (Schmale Titelleiste, keine minimieren Feld) erscheint aber immer noch..

Gruuß Michael
 
Hmm, prüf mal, ob du bei PreCreateWindow da nicht irgendwo WS_VISIBLE rausnehmen kannst. Da war ein bisschen Trickserei mit verbunden

Das WS_EX_TOOLWINDOW sollte eigentlich nur dazu dienen, den Eintrag aus der Taskleiste zu entfernen.
 
NAbend zusammen,

Ich den Dialog jetzt noch mal selbst erstellt also OnCreate überladen und so...
Setze das Visible-Flag nicht.. trotzdem flackerts kurz...
Aus der Taskleiste verschwindet der Eintrag sobald das Fenster mit SW_HIDE versteckt wird.

Gruß Michael
 
Hab grade nochmal in meinem Tool nachgesehen, ich mache auch nur ein ShowWindow( SW_HIDE ) direkt in OnCreate. Es flackert aber trotzdem ganz kurz auf, bevor es verschwindet.

Irgendwie geht es bestimmt, aber im Moment weiss ich nicht, wie.
 
Danke für die Mühen,

Ist zwar schade das das nicht 100%ig klappt aber so ist Microsoft nunmal.. Hab leider jetzt auch keine Zeit mehr das ins kleinste Detail aus zuarbeiten...

Falls ich dafür doch noch ne Lösung find werd ich se hier Posten...

Momentan reicht es erstmal so.. Das Programm wird beim PC Start gestartet und da schaut man vielleicht net ganz so genau hin...

Danke nochmal

Gruß Michael
 
Hast Du's schonmal mit PreCreateWindow versucht? Wenn Du dort schon den Stil WS_VISIBLE entfernst, sollte das Fenster erst gar nicht erscheinen. In der Doku heißt es zwar, OnCreate würde aufgerufen, bevor das Fenster erzeugt wird, aber das stimmt ja offensichtlich nicht ganz. PreCreateWindow wird aber noch vorher aufgerufen.
Probier's mal aus und poste bitte, ob's geklappt hat.
 
Jeder Versuch macht klug.

Die Antwort muss ich aber bis heute Abend schuldig bleiben.

Werds dann aber posten.

Gruß Michael
 
Zurück