Probleme mit Modeless Dialog
Hallo zusammen!
Schreibe gerade an einer SDI-Anwendung für PPC 2003 und hab dabei folgendes Problem:
In meiner View lade ich Daten aus einer Datei und zeige diese als Diagramm an. Um die genaue Darstellung der Daten zu ermöglichen habe ich einen extra Dialog geschrieben, der nicht-maximiert (also mit "m_bFullScreen = false;") über Create(...) und ShowWindow(...), also Nicht-Modal, gestartet wird.
In diesem Dialog werden immer die aktuellen Werte angezeigt, wenn der Benutzer auf einen Bereich im Diagramm drückt, was soweit kein Problem darstellt.
Folgende 2 Probleme treten mit dem Nicht-Modalen Dialog allerdings auf:
1. Menü
In meinem MainFrame definiere ich ein Menü, welches aus normalen Text-Menü-Elementen und einer Toolbar besteht. Die Toolbar beinhaltet allerdings Drop-Down-Buttons, welche ich ca. wie hier beschrieben, erzeuge.
Das Problem ist nun, dass das Menü verschwindet, sobald ich meinen Dialog öffne, was ja nicht weiter verwunderlich ist. Die Frage ist nur, wie ich das Hauptmenü weiterhin anzeigen kann?
Ich könnte natürlich ein neues Menü mittels:
Code:
m_pCommandBar = (CCeCommandBar *)m_pWndEmptyCB;
m_pCommandBar->LoadToolBar(IDR_TOOLBAR_MEASURE);
...
erzeugen, funktioniert das so nicht ganz, da die Toolbar dann falsch dargestellt wird (aufgrund der Drop-Down-Buttons) und meine Ereignisbehandlung für die Toolbar-Button durcheinander kommt.
Ist es vielleicht möglich das Menü einfach durch eine Referenz auf das Menü im MainFrame darzustellen? Zb. folgendes habe ich bereits ohne Erfolg versucht:
Code:
m_pCommandBar = (CCeCommandBar *)m_pWndEmptyCB;
m_pCommandBar = &((CMainFrame *)GetParentFrame())->m_wndCommandBar;
...
Nun zum 2. Problem: Resizing
Wenn mein Nicht-Modaler Dialog geöffnet ist, ist es ja normal, dass der Benutzer während dessen in der Haupt-View herumdrückt (um eben Daten im Dialog anzuzeigen), dh. dass mein Dialog den Focus verliert. Nun geschieht es aber, dass der Dialog sich maximiert, sobald er den Focus wieher erhält (also folgender Ablauf: User öffnet Dialog, Dialog hat Focus und ist nicht Fullscreen -> User drückt auf Diagramm in Main-View, Dialog verliert Focus -> User drückt auf Bereich im Dialog -> Dialog maximiert sich und lässt sich nicht mehr verkleinern)!
Wie kann man dieses Verhalten verhindern? Ich habe schon versucht einige Ereignisse, wie zB. OnSize zu abbonieren und abzufangen, was allerdings zu keiner Änderung geführt hat!
ps.: Ich habe gerade festgestellt, dass das Problem anscheinend nur am PPC 03 auftritt, da ich die Anwendung gerade auf einem 02er Teste und der Dialog hier anscheinend immer seine Größe behält!
Ich hoffe, dass mir vielleicht jemand weiterhelfen kann, da ich hier wirklich nicht mehr weiter weiß!
Vielen dank im voraus, mfg
mike