Fenster in Dialog-Anwendung
-
Hallo Zusammen,
in meiner dialogbasierten Anwendung benötige ich ein Fenster (resizeable), um darin etwas zu zeichenen und evt. eines als Protokollfenster mit Textausgabe (ähnlich wie im guten alten DOS). Geht sowas von einem Dialog aus und wenn ja wie?
Freue mich über jeden Tip!
-
Als neue Popup Fenster, oder in Deinem Dialog?
Beides würde gehen. Allerdings wenn es in Deinem Dialog geschehen sollte, dann müsstest Du Deinen ganzen Dialog resizable machen.
Hier müsstest Du nur ein WM_SIZE Handler einbauen und die entsprechenden KindfFenster dann anpassen.Als Popupfenster würdest Du einfach z.B. nicht modale Dialoge erzeugen (Größen-Handling dann wie oben).
-
Ich dachte an ein neues (Popup-)Fenster/Dialog, der aufgeht, wenn man einen Button drückt. Dieses neue Fenster sollte dann resizable sein - OK. Nur, wenn ich das als Dialog anetze, was muß ich dann machen, bzw. welches Control benutzen, um darin zeichnen zu können? Und welches Control wird benötigt, wenn ich einfach Text seriell reischreiben möchte. Das mit dem Text kann man natürlich mit einm CEdit lösen (habe ich schon mal gemacht), aber das ist irgendwie nicht sehr elegant, da man jedesmal, wenn etwas dazu kommt, den ganzen CEdit-Inhalt komplett neu schreiben muß...
-
Schau Dir doch mal die einzelnen COntrols an. Da findest DU sicher was um Text anzuzeigen.
z.B. ListCtrl
-
OK - Danke! Aber was mach ich mit der Zeichnung? In was für'n Feld mal' ich die?!?

-
Was willste denn malen? Kannst theoretisch direkt auf die Oberfläche malen. Wenn Du dann noch eine Group Box drum machst sieht das dar nicht so schlecht aus. Hab ich letztens in einem Buch gesehen. Ansonsten kannst Du in eine Bitmap malen die du dann auf die Oberfläche blittest.
-
- direkt aufs fenster
- oder z.b. ein static ctrl subclassen
- ein eigenes zeichen-control schreibengibt (wie fast immer bei der winapi) mehrere möglichkeiten
-
direkt auf die Oberfläche eines ansonsten leeren Dialogs - hmmm... müßte man noch ein bischen weiß einfärben, aber ansonsten sicher nicht schlecht...
was ist eigentlich ein static ctrl? In der VC2005 Toolbox kann ich keins finden...
ein Control selber schreiben? Was genau meinst Du damit? Wenn ich eine graphische Ausgabe mit Dialogen schreibe, dann hab' ich ja quasi meine eigenes Control erstellt, oder nicht?
-
möchte ein koordinatensystem und ein paar datenpunkte darstellen.
Das Zeichnen klappt irgendwie nicht - hat da jemand ein paar codezeilen als beispiel? Wäre echt nett!!
-
was ist eigentlich ein static ctrl
Das Ding heißt PictureControl. Dahinter verbirgt sich ein CStatic.
CStatic m_sta_pic;und dann:
//Rechteck holen m_sta_pic.GetClientRect(...) //bzw in Paint: CDC * pDC=m_sta_pic.GetDC(); //mit dem DC zeichnen ...
-
Ich mag ja etwas unbedarft sein, aber wenn ich ein StaticControl (od. Picture Control) mit dem Resourcen-Editor anlege, kann ich weder Membervaiablen noch Ereignishändler anlegen. Wie soll ich dann auf das Control zugreifen können?!?

-
Tester2 schrieb:
und dann:
//Rechteck holen m_sta_pic.GetClientRect(...) //bzw in Paint: CDC * pDC=m_sta_pic.GetDC(); //mit dem DC zeichnen ...was sollen die zwei Zeilen? Wenn er in einem Static zeichnen will, soll er eine eigene Klasse erstellen die von CStatic abgeleitet ist. Dann in der OnPiant der neu erstellten klasse zeichnen und die erstellte klasse nit dem Kontroll im dialog verbinden. Alles andere is bullshit.
Das ganze kann er umgehen wenn er direkt in den Dialog zeichnet, dann kann er die OnPint des dialogs benutzen, is auch die einfachere Variante, wenn in dem Dialog eh nichts weiter angezeigt werden soll.
Gruß Matthias
-
Du mußt dem Kontroll eine neue ID geben, die darf nicht IDD_Statc heißen.
Gruß Matthias