Mehrere Einheiten auf Oberfläche "platzieren"
-
Hallo zusammen...
Ich arbeite momentan mit Visual C++ 6.0 an einer Oberfläche für meine App. Ich habe da mal ein paar Fragen an Euch, da ich bisher nur rein dialogbasierte Anwendungen geschrieben habe:
Bei meinem neusten Projekt muss ich mehrere statisch positionierte Fenster parallel offen haben können. Ich muss 8 serielle Ports abfragen und die Daten anschliessend durch 8 Userinterfaces (evt. Dialoge) gleichzeitig auf einer Oberfläche anzeigen können (Es müssen alle 8 sichtbar sein).
Weiss jemand von Euch, welche Einstellungen ich da am besten nehmen soll? Ich habe bereits Versuche mit SDI und MDI Anwendungen gemacht. Bei einer SDI Anwendung könnte ich ja einfach mehrere Dialoge aufrufen und auf der Oberfläche platzieren...
Oder wie sollte man da am besten vorgehen?Danke und Gruss
Danny
-
du brauchst wohl ne MDI
Esco
-
OK Danke erstmal... Ich werde es einmal auschecken...
Ich hab's jetzt mit einer SDI Anwendung versucht, in diese platziere ich 8 Dialogfelder (War so die Idee). Diese Dialogfelder rufe ich dann beim Programmstart auf. Nur da habe ich momentan das Problemchen, dass ich es noch nicht geschafft habe, alle Dialogfelder automatisch beim Programmstart aufzurufen. Dazu müssten die Dialoge noch nicht modal sein, da ich sie individuell bedienen muss...Weiss da vielleicht jemand, wie man sowas lösen könnte?Vorallem das mit den nicht modalen Dialogfeldern?
Grüsse
Danny
-
mal ne frage: waru machste nicht eine einzige oberfläche. wäre doch sinnig, wenn beim systemstart sowieso alle 8 oberflächen aufgerufen werden, und dann offen bleiben.
Esco
-
Ja das habe ich mir auch schon überlegt...
Das Konzept ist aber ein anderes: Ich habe pro Serieller Schnittstelle, welche ich auswerte zwei Dialogfelder. Eines, welches den User die Datenerfassung kontrollieren lässt (Steht bei Programmstart schon da) und ein Dialogfeld für die Auswertung der Daten, welches dann nach 5 Minuten (Wenn die Dateerfassung beendet wird) aufgerufen wird. Dieses Dialogfeld muss jedoch das erste "überlagern" können, damit die restlichen 7 nicht verdeckt werden...
Bei der Lösung mit einer Oberfläche müsste ich dann die jeweiligen "Überlagerungsdialoge" von der betreffenden Funktion aufrufen lassen. Zum Beispiel:
Datenerfassung auf COM1 beendet, rufe Auswertungsdialog für COM1...Währe eine Möglichkeit. Ich komme da aber auch nicht um die nicht modalen Dialogfelder rum, da es möglich sein muss, mehrere Dialoge gleichzeitig anzuzeigen. Es kann ja sein, dass die Auswertungsperiode für COM1 1 Sekunde vor der Auswertperiode von COM2 beendet ist...Auch hier: Ich kann ein Modales Dialogfeld aufrufen mit DoModal, aber wie mache ich das, wenn es nicht modal sein soll? Irgendwas mit Create(), aber da weiss ich nicht wie's genau geht...
Grüsse
Danny
-
dann rufste 2 halt erst auf, wenn 1 geschlossen ist.
also 8 dialoge nebeneindander... des sieht aus wie in win 3.11Esco
-
Ja da haste allerdings recht...
Ich werde mal alles auf einer Oberfläche platzieren und dann seh ich mal weiter...Aber die nicht modalen Dialoge gehen mir nicht mehr ausm Kopf.. Ich melde mich, wenn ich darüber mehr weiss...Gibt wohl wieder ne lange Nacht
Gruss
Danny