Technician Geschrieben 15. Oktober 2002 Geschrieben 15. Oktober 2002 Hallo, wie kann ich auf der weiße Fläche eines MDI-Dokluemnts Steuerelemente platzieren?! Grund: Wenn ich eine Datei öffne, so soll die Dateianzeige mit Hilfe eines TreeViews erfolgen. Im Ressourceneditor habe ich leider keine Möglichkeit gefunden, die "Dokumentenfläche" zu bearbeiten und Steuerelemente draufzulegen :confused: Wer kann mir helfen? Grüße, Technician P.S.: Ich bin im "Visual"-Teil von C++ noch totale Anfängerin Zitieren
Klotzkopp Geschrieben 15. Oktober 2002 Geschrieben 15. Oktober 2002 Mit dem Ressourceneditor kannst Du nur arbeiten, wenn Deine View-Klasse von CFormView abgeleitet ist, denn nur diese Klasse kann man mit Dialogressourcen verknüpfen. Allerdings ist der Hintergrund dann grau, nicht mehr weiß. Ansonsten musst Du die Steuerelemente von Hand erzeugen, mittels CreateWindow. Zitieren
Technician Geschrieben 15. Oktober 2002 Autor Geschrieben 15. Oktober 2002 Original geschrieben von Klotzkopp Mit dem Ressourceneditor kannst Du nur arbeiten, wenn Deine View-Klasse von CFormView abgeleitet ist, denn nur diese Klasse kann man mit Dialogressourcen verknüpfen. Allerdings ist der Hintergrund dann grau, nicht mehr weiß. Ansonsten musst Du die Steuerelemente von Hand erzeugen, mittels CreateWindow. okay, danke! werd mir's mal anschauen! grüße, technician Zitieren
Technician Geschrieben 15. Oktober 2002 Autor Geschrieben 15. Oktober 2002 wenn ich jetzt in der headerdatei meiner view die zeile class CMdiProgramView : public CView durch class CMdiProgramView : public CFormView ersetze, bekomme ich den Compilerfehler "error C2512: 'CFormView' : Kein geeigneter Standardkonstruktor verfuegbar" und bleib dann in der CDMdiProgramView.cpp hier hängen: CMdiPrigramView::CMdiProgramView() { // ZU ERLEDIGEN: Hier Code zur Konstruktion einfügen, } was muss ich da noch ändern, damit's funktioniert? Zitieren
Technician Geschrieben 15. Oktober 2002 Autor Geschrieben 15. Oktober 2002 ... hat sich schon erledigt... Zitieren
Klotzkopp Geschrieben 15. Oktober 2002 Geschrieben 15. Oktober 2002 Original geschrieben von Technician was muss ich da noch ändern, damit's funktioniert? Der Fehler kommt daher, dass CFormView im Konstruktor ein Argument braucht, und zwar die ResourceId der Dialogresource, mit der sie verknüpft ist. Es ist ziemlich aufwändig, ein SDI/MDI-Projekt nachträglich auf eine andere View-Klasse umzustellen. Wenn es nicht zuviel Aufwand ist, würde ich von vorn beginnen. Du kannst beim Anlegen des Projekts mit dem Assistenten auf der letzten Seite die Basisklasse der View festlegen. Wenn Du da CFormView wählst, wird auch gleich eine Dialogressource angelegt, und die View damit verknüpft. Falls das nicht geht, muss folgendes geändert werden: In CDeineView.h class CDeineView: public CFormView (logisch) //{{AFX_DATA(CDeineView) enum{ IDD = IDD_ZU_VERWENDENDE_DIALOGRESSOURCE }; // NOTE: the ClassWizard will add data members here //}}AFX_DATA In CDeineView.cpp: IMPLEMENT_DYNCREATE(CDeineView, CFormView) BEGIN_MESSAGE_MAP(CDeineView, CFormView) Das gleiche für jeden Eintrag in der MessageMap: Überall muss CView durch CFormView ersetzt werden. Der Konstruktor: CDeineView::CDeineView() : CFormView(CDeineView::IDD) { //{{AFX_DATA_INIT(CDeineView) // NOTE: the ClassWizard will add member initialization here //}}AFX_DATA_INIT // TODO: add construction code here } Außerdem muss bei jeder virtuellen Funktion, in der die Funktion der Basisklasse aufgerufen wird (z.B. DoDataExchange, PreCreateWindow, OnInitialUpdate) CView durch CFormView ersetzt werden. Zitieren
Technician Geschrieben 15. Oktober 2002 Autor Geschrieben 15. Oktober 2002 Hallo Klotzkopp, Original geschrieben von Klotzkopp Es ist ziemlich aufwändig, ein SDI/MDI-Projekt nachträglich auf eine andere View-Klasse umzustellen. Wenn es nicht zuviel Aufwand ist, würde ich von vorn beginnen. Du kannst beim Anlegen des Projekts mit dem Assistenten auf der letzten Seite die Basisklasse der View festlegen. Wenn Du da CFormView wählst, wird auch gleich eine Dialogressource angelegt, und die View damit verknüpft. Das habe ich jetzt auch festgestelllt Da es ja nur ein kleines Übungsprojekt ist mit dem ich mich in die Thematik einarbeiten werde, leg ich dann mal ein neues an. Jetzt ist mir das mit den FormViews klar :cool: - bis ich wieder ne Frage hab Wirst mich hier in dem Forum demnächst noch öfter finden Grüße, Technician Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.