Dynamische Oberfläche erstellen
-
Guten Morgen, ich bin in der Vorbereitung eines neuen Programms mit folgender Idee. Ich möchte ein Programm schreiben, in dem sich der Nutzer seine Oberfläche selbst zusammenstellen kann. Dabei soll er nicht z.B. bei 3 vorgegebenen Buttons entscheiden können welcher angezeigt werden soll oder nicht sondern alle steuerlemente selbst platzieren. Allerdings stoße ich bei meinen Überlegungen auf eine Problem wenn der nutzer auf einen selbst erstelleten Button Klickt wie soll darauf reagiert werden. Ich muss ihm dann ja Möglicvhkeiten vorgegeben.
Hat jemand noch ideen wie man das Umsetzen kann bin für jeden Hinweis dankbar.
-
Hallo,
mh du koenntest ja zum Erstellen des Programms ein anderes Programm nutzen, sone Art Editor. Und dort kann sich der Benutzer dann die Buttons oder anderen Steuerelemente zurecht ruecken und beim Anlegen weisst er ihnen vorgefertigte Funktionen zu.
Z.B. Links unten tut er nen Button hin der mit der Beenen-Funktion belegt wird, rechts unten einen mit einer Datei-oeffnen-Funktion usw.
Haengt natuerlich von ab was das Programm am Ende tun soll.
Die Einstellungen kannste dann ja in ne Datei Speichern, wo welcher Button ist.MfG, Heimdall83
-
Erst mal Danke für Deine Antwort. Du hast durchaus recht Ich könnte das so machen . Aber bei bestimmten Elemente z.B. Checkboxen sind bedingene verknüpft. So wenn du Checkbox1 anglickst darf Ckeckbox2 nicht angeklickt werden und so weiter. Und das ist - os glaube ich - ziemlich schwierig über einen Editor zu realisieren.
Außerdem weiß ich nicht so richtig wie man Steuerelemente dynamisch erstellen soll. also mit dem Editor von VC++ geht das ja ganz gut aber dynamisch ist schwierig.
-
Hallo,
naja musst sie dann halt per WinAPI selber erstellen, irgendwo ist hier gerade son aehnlicher Artikel glaube ich. Das was du mit den CheckBoxen meinst sind halt Gruppen.
Nun sach doch mal was das Programm denn so machen soll
MfG, Heimdall83
-
danke ich weiß schon wie ich es realisiere - im KOpf. Das Programm soll zur Erfassung medizinischer Daten sein. Leider gibt es von Bundesland zu Bundesland keinen einheitlichen STandard. Aus diesem Grund soll der Nutzer selbst besteimmen können was er erfasst. Daher die Dynamscihe Oberfläche.
Hab aber noch eine fachliche Frage :CButton myButton1; myButton1.Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON, CRect(10,10,100,30), this, 1);Dieser COdeschnipsel soll einen Button erzeugen. Hab es in
OnInitialUpdate()geschrieben leider ohne erfolg kommt zwar kein fehler aber auch kein button. kannst du mitr helfen
-
Hallo,
mh so Buttons habe ich bisher leider noch nie selber erstellt. Bin gerade auch mit MFC bissl am rumexperimentieren

(Weisst du zufaellig wie ich die Fenstergroesser innerhalb einer WM_Timer-Funktion groeser und kleiner machen kann? Komme irgendwie net an den HauptWindowHandle
)Zu der Button Funktion, ueberpruef evtl. nochmal die Parameter, vorallem ist die CRect Angabe denn so richtig?
MfG, Heimdall83
-
Versuche mal MoveWindow. Damit kannst du die aktuelle Position und die größe eines jedesn OBjektes und auch Fensters verändern
-
Hallo,
ne habs jetzt so gemacht:
CDrawingDlg::SetWindowPos(NULL, 0,0, windowx, windowy, NULL);Das Problem war das ich als erstes Parameter dachte man MUSS nen Handle uebergeben, aber mit NULL geht er aufs aktuelle Fenster glaub ich.
MfG, Heimdall83
-
Bei einer einfachen Dialoganwendung reicht es aus
MoveWindow(x,y,breite,höhe,true);zu machen funktioniert ganz gut. am besten in die Oninitdialog