SDI/MDI - und deren Handhabung



  • Squeel schrieb:

    Also, der Zauberer(tm) von VC++.NET kreiert MDI oder SDI Programme für dich wenn du ein neues MFC Projekt startest.

    Es hängt allerdings von dir ab was du mit den Views oder Documents tun willst... Du kannst die Klassen beliebig ändern...

    Schau dir mal die MSDN an...

    Was meinst du eigentlich was ich die ganze Zeit gemacht habe?

    Mein Problem ist das es nicht klappt das View selbst mit einem FormView zu ersetzen.

    Ich bin hingegangen und habe ein SDI erstellt ... hab nen neues IDD_FORMVIEW gemacht und dort ne abgeleitete Classe von CView erstellt.

    Es zeigt mir aber beim starten nicht das FormView an.



  • Du musst die Klasse von CFormView statt von CView ableiten.



  • CFormView Klasse braucht ein parameter (nämlich den IDD_FORMVIEW Dialogresource Identifier). SDI und MDI Dokumente kreieren neue Views ohne diese Parameter. Du must die Erbauer Methode aufheben (der neue Erbauer soll kein parameter aufnehmen) und die Erbauer Methode der CFormView Klasse mit dem (Globalen) Parameter (IDD_FORMVIEW) rufen.

    Ich kenne keine bessere Methode... Bin selber ein Greenhorn...

    Ciao



  • Äh? Haben die bei .net die CFormView abgeschafft? Macht mich nicht irre! 😮



  • Ich habe die CFormView gerade kreiert... im VC++.NET...

    MFC - ist ja klar...



  • Uff, dann bin ich beruhigt. Das klang so, als wenn das plötzlich total kompliziert wäre. Ich habe den Umstieg noch vor mir, traue mich aber nicht.



  • Oh! Es tut mir Leid. Ich habe einen Fehler gemacht - ich habe "IDD_FORMVIEW Klasse" anstatt "CFormView Klasse" geschrieben...

    estartu_de - Sorry

    Ciao



  • Squeel schrieb:

    IDD_FORMVIEW Klasse braucht ein parameter (nämlich den IDD_FORMVIEW Dialogresource Identifier). SDI und MDI Dokumente kreieren neue Views ohne diese Parameter. Du must die Erbauer Methode aufheben (der neue Erbauer soll kein parameter aufnehmen) und die Erbauer Methode der CFormView Klasse mit dem (Globalen) Parameter (IDD_FORMVIEW) rufen.

    Ich kenne keine bessere Methode... Bin selber ein Greenhorn...

    Ciao

    Meinst du die int "CMainView::OnCreate(LPCREATESTRUCT lpCreateStruct)"
    Irgendwie steh ich gerade voll auf dem Schlauch 😞

    Hätte mal jemand ein Bsp. Projekt für mich?



  • Ich kann dir leider nur ein Projekt von VC6 schicken.

    Ich vermute, es ist der Konstruktor gemeint, also: CMainView::CMainView(...)

    Falls CMainView CView als Basisklasse hat musst du das in CFormView ändern. Dann kriegst du tonnenweise Compilerfehler - aber der einzige einfache weg ist ein neues Projekt wo du die Basisklasse gleich richtig einstellst.



  • VC6 hilft mir nicht wirklich weiter ... da hab ich zum laufen gebracht aber im .Net nicht die scheinen da was geändert zu haben ... naja ich hoffe ich krieg mich da durch gefummelt ;P


Anmelden zum Antworten