Symbol eines Dialoges
-
Hallo
Aus meinem Programm heraus kann ich zwei weitere Dialoge öffnen. Nun ergeben sich hier seltsame Dinge, die ich nun versuch hier zu erklären.
Ich möchte eigentlich dass beide Dialoge wenn geöffnet einen Eintrag in der Windows Taskleiste haben. Dazu muss man ja in den Eigenschaften des Dialogs den Punkt Anwendungsfenster auf true setzen
1. Phänomen:
Momentan noch bei beiden auf false. Einer der beiden hat aber trotzdem einen Eintrag in der Taskleiste. Wieso das?2. Phänomen:
Ich habe jedem Dialog ein eigenes Symbol zugeordnet. Dieses Symbol erscheint sowohl in der Titelleiste des Dialogs sowohl in der Taskleiste von Windows. Allerdings wenn ich auf Alt-Tab klicke, haben in dem sich öffnenden "Fenster" beide Dialoge das selbe Symbol.Woran liegt das? Kann mir jemand helfen?
-
Vieleicht muss ich noch dazusagen, dass der aufrufende Dialog eine exe ist und die aufgerufenen Dialoge sich in einer DLL befinden.
-
Ein Icon hat mehrere Auflösungen.
In der Caption wird eine kleine Auflösung 16x16 verwendet im Taskswitch 32x32 oder größer.Hast Du alle Auflösungen des Icons geändert?
-
Hast Du alle Auflösungen des Icons geändert?
Geändert? Ich habe das Icon impoertiert. Wenn ich das Icon in VS öffne ist das icon in verschiedenen größen und Farben vorhanden.
Im Konstruktor meines Dialoges habe ich folgendes implementiert:
m_hIcon = AfxGetApp()->LoadIcon(IDI_ICON_RUNTIMEINFO);
Was muss ich da noch ändern?
-
Hast Du alle Auflösungen des Icons geändert?
Geändert? Ich habe das Icon importiert und wenn ich das Icon in VS öffne ist das icon in verschiedenen größen und Farben vorhanden.
Im Konstruktor meines Dialoges habe ich folgendes implementiert:
m_hIcon = AfxGetApp()->LoadIcon(IDI_ICON_RUNTIMEINFO);
Was muss ich da noch ändern?
-
m_hIcon = AfxGetApp()->LoadIcon(IDI_ICON_RUNTIMEINFO);
Dieser Code macht doch nichts, außer ein Icon zu laden.
Es verwendet das Icon doch gar nicht.Du kannst versuchen Deinem Dialog mit SetIcon ein abweichendes Icon zu geben.
-
Natürlich. Habe vergessen alles hier anzugeben.
In OnInitDialog setze ich die Icons bereits.
SetIcon(m_hIcon, TRUE); // Großes Symbol verwenden
SetIcon(m_hIcon, FALSE); // Kleines Symbol verwendenAber das ist ja wie erwähnt bereits implementiert. Woran kann es noch liegen?
-
Dann würde ich sagen, dass Windows immer das Main-Aplication Icon im Task-View verwendet. Aber sicher bin ich mir nicht bei dieser Vermutung.
-
Dann würde ich sagen, dass Windows immer das Main-Aplication Icon im Task-View verwendet.
Und genau das ist ja nicht der Fall. Es wird ja im Task-View nicht das Symbol der Main-Application angezeigt. Sondern das Symbol des anderen neben Dialogs.
Sprich beim Dialog_1 ist es das Icon das ich für diesen Dialog gesetzt habe und beim Dialog_2 ist es auch das Symbol von Dialog_1.
Wenn ich das Symbol von Dialog_1 nicht setze haben Dialog_1 und Dialog_2 nur noch ein default Symbol im Taskviewer (nicht das von der Main-Application).
-
Was mir aber noch wichtiger wäre ist Phänomen 1.
Wieso hat den ein Dialog einen Eintrag in der Taskleiste und der andere nicht.
Habe die Eigenschaften der Dialoge 1 zu 1 verglichen. Beide Einstellungen sind genau gleich.
Die Dialoge sind beide nicht Modal und wurden mit Create angelegt. Hier sind aber auch keine Unterschiede zwischen den beiden Dialoge gemacht worden.
-
Ist ja lustig habe ein ähnliches Problem habe dazu auch schon einen Thread aufgemacht.
Ich möchte gerne einen Eintrag in der Taskleiste haben und bekomme keinen hin. Du hast einen und weißt nicht wieso.
-
Habe mal etwas weiter geforscht. Und habe festgestellt, dass derjenige Dialog der als erstes in InitInstance erstellt wird ein Eintrag in der Taskleiste hat alle anderen nicht. Und dass das auch das Symbol des ersten Dialogs verwendet wird. sozusagen wird der Dialog der als erstes erstellt wird als parent gesehen. Obwohl eigentlich alle Dialoge auf der selben Höhe sind.
Vieleicht könnt ihr mir nun etwas weiterhelfen.
-
Modal odernicht modal?
Was gibtst Du als Parent an?
-
Nicht modal.
Bei Create gebe ich als Parent gar nichts mit. Also Standard =0.
-
Schau mal mit Spy++ nach, wer das Parent dieses Fensers ist!
-
Schau mal mit Spy++ nach, wer das Parent dieses Fensers ist!
Seltsames verhalten. Habe nun mal die Riehenfolge wie ich die Dialoge anlege verändert. Und nun habe ich immer mal wieder ein anderes übergeordnetes Fenster. Mal ein Fenster ohne Beschriftung, dann mal wieder ein Dialog der erst als letztes erzeugt.