SDI-Problem



  • Hi Forum,

    ich schreibe gerade ein kleines MFC-Programm und bräuchte mal Eure Hilfe. Ich hab zwei Probleme, die man getrennt behandeln kann.

    1. Meine View-Klasse ist von CFormView abgeleitet (ich will eben eine Formularoberfläche statt einem Textdokument). Nun will ich aber weitere und vor allem andere Ansichten (Formularoberflächen) benutzen können. Wie erreiche ich dass, OHNE dass bei jedem Druck auf "Neues Dokument" eine Dialogbox kommt, in der ich meine Ansicht wählen soll. Ich will einfach programmintern (!) festlegen, welche Ansicht zu welchem Zeitpunkt angezeigt wird. (Also schon fast MDI, aber ich will immer nur EIN EINZELNES Formular zur gleichen Zeit, dieses soll aber flexibel sein!)-- ich hoffe, jemand versteht das überhaupt so, wie ich das geschrieben habe 😉

    2. In meiner Hauptanwendungsklasse ist ein globales Objekt deklariert (scheint Standard zu sein, nennt sich theApp). Na jedenfalls habe ich in meiner Hauptklasse eine Referenz auf eine Datenbank stehen. Kann aber auf diese Datenbank in fremden Klassen (z.B. einer Dialogklasse) nicht auf die Datenbank zugreifen. Ich hab mich deswegen um ein Work-Around bemüht: Ich könnte bei jedem DoModal() eines Dialogs die Datenbank als Referenz übergeben und damit arbeiten; aber ist das nicht ein wenig inperformant? Ich meine, gibt es da keinen einfacheren Weg? Also vielleicht das globale Objekt auch irgendwie in den fremden Dialogklassen bekannt zu machen?

    Danke für jede Hilfe!!



  • Schau dir mal das MSDN Beipiel Vswap an, oder Enroll.
    Und hier noch nen Link wo jede Menge Beispiele sind!
    [url] http://www.codeguru.com/doc_view/index.shtml [/url]
    Da ist der Unterteil View Management für dich interessant! 😉

    Den 2 Teil kapier ich net! 🙄 Und wenn du mit ner DB arbeitest,wieso nutzt du dann nicht CRecordView?
    Dein globales Objekt kannst du jedenfalls mit AfxGetApp () "erreichen" 😉

    MfG Spacelord 🙂



  • Danke Spacelord,

    die ganzen Links sollten genügen!


Anmelden zum Antworten