Dialoge dynamisch erzeugen - ATL Projekt
-
Hallo,
für ein Projet zur Erweiterung von ArcGis habe ich ein ATL Projekt erstellt mit dem man bestimmte Simulationen laufen lassen kann.
Bisher habe ich es so gemacht das wenn ich ein Dialog brauchte ich dieses einfach per Project->AddNewItem->AddDialog hinzugefügt habe und dann dem entsprechend eine passende Resource gebastelt habe (zum Beispiel zum Bearbeiten von Substanzdaten in der Datenbank).Nun stellt sich aber das Problem das auf Dauer evtl. neue Parameter hinzukommen können (bzw. werden).
Es wäre also schön wenn ich den Dialog dynamisch aus der Datenbank aufbauen könnte (es wird erst nachgeschaut welche Parameter es gibt und dann entsprechende Eingabefelder angelegt).
Nur wie kann man sowas realisieren? Meine grobe Vorstellung wäre im Moment das ich in der OnInit Methode die benötigten Felder ermittel und dann diese irgendwie anlege und positioniere (die Parameter haben schon zusätzliche Felder in der DB, wie z.B. Gruppenzugehörigkeit und Reihenfolge)...
Über Vorschläge oder ein schönes Tutorial wäre ich dankbar
LG
Christian
-
Was hindert Dich CreateWindow aufzurufen?
Ich verstehe Dein Problem nicht. Ob ein Control über eine Ressource oder über Code erzeugt wird ist kein Unterschied.Also erzeuge die fenster einfach wie Du es geplant hast... Und wie Du feststellen wirst werden in CreateWindow die entsprechenden angaben wie Postion Klasse Stil etc. genauso benötigt wie in Deiner Ressource!
-
Hallo und danke für die Antwort.
Ich habe generell mit Fenstern die von Hand erstellt werden in VC++ bisher noch nichts gemacht (halt nür über addDialog). In Java wüßte ich wohl wies geht
aber in VC++ leider nicht.Ich habe mit CreateWindow mal ein bischen rumprobiert, aber nur über die Systemklassen (z.B. Button) ein Fenster mit halt einem Button drin erzeugen können.
Zur besseren Vorstellung, so sieht der Dialog im Moment aus.
http://www.usf.uos.de/~cfiedler/EditSubstance.gifDie Reiter sind im Moment sekundär. In die Datenbank werden durchaus weitere Parameter eingetragen oder vorhandene entfernt und ich hätte gern das sowohl der Name, als auch ein EditField zu jedem verfügbaren Parameter automatisch angelegt wird.
In Java würde ich halt mir ein Frame anlegen und dann die einzelnen Elemente hinzufügen. Aber wie mache ich das in VC++?
Kann ich mit CreateWindow erst irgendwie ein "leeres" Fenster anlegen und dann Elemente hinzufügen? Oder muss ich mir erst irgendwie das fertige Fenster basteln und dann anlegen? Oder muss ich gar für meine Zwecke sowas wie CreateDialog benutzen?
Stehe da total auf dem Schlauch und mit der MSDN lib alleine komme ich nicht voran
.Danke und Grüsse
Christian