Fenster erzeugen
-
Hallo!
ich habe ein MFC Programm - SDI Projekt. Auf das Projekt muss ich, denke ich nicht weiter eingehen - einfache Oberfläche mit Menü, Toolbar und Grafik.
Ich möchte nun zusätzlich zu diesem Programm ein weiteres Fenster öffnen. D.h sobald ich die Anwendung starte dann soll einfach noch ein Fenster aufgehen, dass nur Daten anzeigt ... ich will keine Buttons oder sowas haben.
Hab schon einiges ausprobiert, aber das funktioniert nicht.
Wie kann ich das am einfachsten machen? Muss ich für das Fenster ein neues Projekt anlegen oder kann ich das im Hauptfile auch mit new erzeugen?
Und wie geht das am besten?
Welcher Fenstertyp eignet sich am besten wenn ich nur Daten ausgeben will ?
danke schonmal für ein paar Tipps
-
Ich würde ein Dialogfenster neu öffnen. Dort kann man die Daten in einem entsprechenden Control ausgeben.
-
Erzeuge einen neuen Dialog mit dem MFC Wizard dafür. Den rufst Du dann nichtmodal auf:
//z.B. in der OnInitDialog deines Hauptdialoges / deiner Hauptanwendung deinDialog dlg; dlg.Create(IDD_VON_DEIN_DIALOG, NULL); dlg.ShowWindow(SW_SHOW);
-
Hallo!
Danke für den Tipp - hab das jetzt so gemacht, aber irgendwie zeigt er mir den Dialog nicht an.
Meine Hauptanwendung ist ein CView, dort habe ich im OnCreate den Dialog nichtmodal angelegt. Ist das OnInitDialog mit dem OnCreate äquivalent?as ich noch möchte ist, dass der Dialog immer im Vordergrund bleibt, aber trotzdem die Hauptanwendung noch aktiv ist.
Get das mit SetWindowPos()?
Das ist mein Code, leider kommt kein Fenster - weiß jemand wieso?
int OnCreate(LPCREATESTRUCT lpCreateStruct){ ..... CMyDialog dlg; dlg.Create(IDD_DIALOG_MYDIALOG, NULL); dlg.SetWindowPos(&wndTopMost, 100, 100, 300, 500, SWP_SHOWWINDOW); dlg.ShowWindow(SW_SHOW); }----------------------------------------------------------------------
ok habs grad noch hinberacht jetzt.
ShowWindow und setWindowPos hab ich ins InitDialog vom CDialog gegeben.
Dialog in der Hauptanwendung hab ich nicht modal gemacht sondern, mit new angelegt und dann das Create.
Jetzt funktionierts super