Zweiter Nichtmodaler Dialog -> soll in Taskleiste erscheinen
-
Hallo Leute,
Ich versuch mich gerade in der MFC. Leider klappt nicht alles immer so ganz wie man sichs vorstellt. Im Gegensatz zu Kinderkackenprogrammiersprachen wie Delphi oder Visual Basic, wo vieles kein Problem ist, habe ich bei C++ das Problem bei einer Dialogbasierenden Anwendung ein zweites nichtmodales Fenster auf Buttonbetätigung im ersten Dialog anzuzeigen, sodass der zweite Dialog aber in der Taskleiste zu sehen ist.
Ich habe nicht-modale Fenster schon in verschiedenen Varianten hinbekommen: Z.B. auf Buttondruck ein zweites nichtmodaler Dialog. Dieser ist nun aber nicht in der Taskleiste zu finden.
Man könnte denken, dass man die Befehle für den 2. Dialog in die Anwendungsklasse schreibt. Das zweite Fenster wird tatsächlich in der Startleiste angezeigt, allerdings sofort beim Programmstart. Der 1. Dialog soll schließlich auf ein Ereignis warten, bis der 2. Dialog erscheint.
Ist es möglich klassenübergreifend zu programmieren? Könnte es damit funktionieren. Die Dialog1-klasse greift auf Funktionen der Anwendungsklasse zu? Vielleicht kann man sogar auf das globale Anwendungsobjekt theApp zugreifen?
Wer hat eine Lösung für mein Problem?
Danke im Voraus
Sebastian
-
Hi,
ich bin mir nicht ganz sicher ob es 100%ig die Antwort auf dein Problem ist.Versuchs mal in dem du deinem 2. Dlg den Extended Window Style WS_EX_APPWINDOW gibst.
Ich hoffe es hilft.
MFG
Kai
-
Ich kenn die Befehle noch nicht, wie man den Style verändern kann. Könntest du mir den nötigen Quelltext geben?
-
Du nimmst den ClassWizard und reagierst bei dem Dialog der auch noch in der Taskleiste erscheinen soll auf die Nachricht "PreCreateWindow".
In dieser Methode machst du dann folgendes:
BOOL CZweiterDlg::PreCreateWindow(CREATESTRUCT& cs) { // TODO: Add your specialized code here and/or call the base class cs.dwExStyle += WS_EX_APPWINDOW; // Diese Zeile einfügen return CDialog::PreCreateWindow(cs); }MFG
Kai
-
Ich hab das ganze ausprobiert, doch es funktioniert nicht. Das neue nicht-modale Fenster wird nicht in der Taskleiste angezeigt.
Tschau
Sebastian