SDI, MDI oder was soll ich nehmen?



  • Tja, sicher einmal alles. 🙂

    Dann hast du zwei Möglichkeiten:
    Du änderst einfach die Basisklasse per Hand, kompilierst und korrigierst die Fehler. Das werden viele sein, aber viele sind Folgefehler.

    Oder du löschst die Quelldateien der Klassen, erstellst sie mit der richtigen Basisklasse neu und kopierst dann alles rüber was brauchbar ist.



  • jup, die 2. Methode hatte ich dann auch gemacht, ging sogar relativ schnell.

    p.s. ich weiss nich opb du den post schon gesehen hast ( http://www.c-plusplus.net/forum/viewtopic.php?p=575686#575686 ) aber schick die sachen wegen der formview mal bitte an meine andere addi, brauch das dringend 🙂



  • Das ist doch schon lange raus.... 😕
    An beide!

    Ansonsten: Ich hab jetzt Mittag. So gegen 12:30 melde ich mich bei Yahoo mal an, dann können wir chatten. 🙂

    Bin da, jetzt fehlst du.
    http://messenger.yahoo.com/?i=1 und dann unten in der kleingedruckten Zeile "launch web messenger". Einen Yahoo Account hast du ja. 😃



  • hatte auch mittagspause, ich komm dann gleich mal in den chat (wenn der mit unserem proxy funzt)
    Edit: Komme durch den Proxy nich durch, weder mit dem Webmessenger noch mit Trillian



  • Schade. Hast du die Mail jetzt?

    Ansonsten kannst du ja nochmal den Link hier versuchen: http://www.busfreunde.de/chat.php?id=
    ... aber ich fürchte deine Firewall ist zu paranoid. 😞



  • und zwar hab ich in diesem abschnitt ein problem:

    switch (f_nId)
    {
    case ID_KUNDE_STAMMDATEN:
    pNextView = create_view<CKundenView, CKundenDoc>(this);
    break;
    default:
    ASSERT(0);
    return;
    break;
    }

    Die ID_KUNDE_STAMMDATEN ist denke ich mal der Dialog. CKundenView bzw CKundenDoc (heissen bei mir natürlich anders) kennt er nicht, wenn ich deren .h in der MainFrame.h mit include, klappt die Deklaration der beiden Konstruktoren nicht mehr 😕



  • Eigentlich stand das auch in der Mail: Die müssen public sein. 🙂
    ID_KUNDE_STAMMDATEN ist die ID des Menüpunktes.

    Das ganze läßt sich nämlich prima mit einer Commandrange verbinden. Daher auch die switch.



  • Da der Chat grade wieder klemmt:
    Du hast die Umstellung auf CFormView als Basisklasse nicht komplett gemacht.
    Schau bitte mal in deine andere Viewklasse, was du da alles für Funktionen hast. Und auch, welche du nicht hast.

    OnInitDialog ist im FormView fehl am Platz - das heißt OnInitialUpdate. 🙂

    Nur als Beispiel...



  • Das klappt ja jetzt wunderbar, aber nun muss ich ein CTabCtrl einsetzen, welches auf dem CFormView sitzt und auch verschiedene CFormViews einbettet. Ich habe verschiebene ausprobiert, da mir die Handhabe des Standart-CTabCtrls zu kompliziert ist und als bestes habe ich das CXTabCtrl empfunden (http://www.codeguru.com/Cpp/controls/controls/tabcontrols/article.php/c2189/)
    Nun habe ich beim Einbau aber ein Prob, es ist normalerweise dafür gedacht CDialogs in CTabCtrals einzufügen, aber nicht in CFormViews.
    Daher auch der Aufruf:
    void CONUView::OnInitialUpdate()
    {

    m_TabContent = new CTabContent;
    m_TabContent->Create(CTabContent::IDD, &m_ctrlTab /*CXTabCtrl variable*/);
    m_ctrlTab.AddTab(m_TabContent, "Tab caption", 0 /* image number*/);
    } //natürlich bei Cdialog in der OnInitDialog
    Wie muss meine Create-Funktion für CFormView aussehen?
    (Die CXTabCtrl(Membervariable m_ctrlTab) sitzt in der CONUView, welche eben von der Klasse CFormView abgeleitet ist. Darin soll die ebenfalls von CFormview abgeleitet Klasse CTabContent eingebettet werden)

    wie stell ich das halt hier über CXTabCtrl oder auch gerne eine andere (mgl. leicht zu bedienende) Klasse an, so daß ich am Ende einen Karteireiter bekomme



  • *up*
    oder gibt es da keine mgl.? dann muss ich auf den tab verzichten und das anders lösen



  • Okay, für diese Antowrt wirst du mich hauen, aber du sollst es trotzdem wissen:

    Ja, man kann CFormViews und auch CViews mit Tabs anzeigen. Ich habe an einem Projekt mitgearbeitet, wo das gemacht wurde. Der Code ist aber erstens Firmeneigentum und zweitens habe ich mir die Stellen eh nie angeschaut. War ja nicht meins. 🙄
    Hättest du das nicht vorher sagen können? Das ist der Grund, warum man in der Schule lernt, eine ordentliche Planung zu machen. Du wirst die Klassen, die du in den Tabs darstellen willst wohl wieder umbauen müssen, wenn du nichts anderes findest. Davon habe ich keine Ahnung.

    Damit sowas nicht wieder passiert: Stell die Frage komplett. Dir klaut hier keiner Ideen, also schreibe, was du vorhast. Es kann - wie du gemerkt hast - sehr gut sein, dass eine Teilfrage anders beantwortet wird als eine Gesamtfrage.

    Sorry...



  • hätte ich gewusst, das das so ein problem wird, hätte ich auch die frage anders gestellt 😉
    naja ich werd das dann nich über tabs sondern irgendwie anders lösen, was leicht zu implementieren ist 🤡



  • Wie wärs mit einer Buttonzeile ganz oben? Mit etwas Geschick kannst du das wie Tabs aussehen lassen. 😃



  • Hab es nach einer netten Anleitung hingekriegt:

    http://www.codeguru.com/Cpp/controls/propertysheet/article.php/c591/



  • Glückwunsch! 🙂

    Da ich das wahrscheinlich auch noch brauche, habe ich es gleich ausgedruckt. 😃


Anmelden zum Antworten