TabControl erzeugen



  • Und was mache ich, wenn ich bereits einen kompletten Dialog fertig habe und diesen nun in eine Registerkarte einfügen möchte? Sprich: Wie bekomme ich all´ die Ressourcen in das neue Projekt, so dass auch alle Funktionen noch einwandfrei laufen?

    Gruß,
    Holger



  • Den Dialog müsstest du importieren können, oder Copy & Paste müsste auch funktionieren,
    wenn du beide Projekte offen hast.
    Dann musst du noch die entsprechenden Dateien für die Dialogklasse dem Projekt hinzufügen.

    Der Dialog muss dann noch in den Resourcen so eingestellt sein, das er keinen Rand
    hat, und untergeordnet ist.

    Devil



  • Hallo devil81!
    Ich habe eine frage zu deinem Anleitung!
    Zu punkt 3: In welcher Klasse muss ich die Membervariable erstellen?



  • Im Dialog wo das TabCtrl liegt.



  • Hallo zusammen,

    finde die Klasse auch ganz praktisch!

    Nur leider stehe ich an:

    Ich möchte die Tabs vom Programm her ansteuern. Das heisst soviel wie, ich befinde mich gerade in einem Tab und möchte beim anklicken eines bestimmten Buttons direkt in ein anderes Tab wechseln...

    hab bisher leider nichts rausbekommen, bin für gute Ratschläge offen.

    Gruss



  • Da ist mir gerade noch was aufgefallen:

    Wenn man mit den Pfeiltasten die Tabs auswählt, wechselt der Dialog nicht...



  • aCCa schrieb:

    Da ist mir gerade noch was aufgefallen:

    Wenn man mit den Pfeiltasten die Tabs auswählt, wechselt der Dialog nicht...

    Würde mich auch interessieren wie man den Dialog-Wechsel durch die Pfeiltasten realisiert



  • normal sollte sowas mit [strg]+[tab] gehen.. zumindest bei den normalen CTabCtrl... aber sowas sollte man wissen.... depp 😉



  • (D)Evil schrieb:

    normal sollte sowas mit [strg]+[tab] gehen.. zumindest bei den normalen CTabCtrl... aber sowas sollte man wissen.... depp 😉

    das checkt johnny nicht so ganz. was meinst du mit [strg]+[tab]? es geht darum die funktionalität hinzuzufügen, dass mit den pfeiltasten zwischen den tabs gwechselt werden kann in (innerhalb des CTabCtrl)!



  • aCCa schrieb:

    Da ist mir gerade noch was aufgefallen:

    Wenn man mit den Pfeiltasten die Tabs auswählt, wechselt der Dialog nicht...

    Weiß jemand wie das geht?



  • Hi
    Ich habe DynTabCtrl in eine SDI -anwendung mit Formview ansicht
    gepackt . Wenn ich diese anwendung schliesse kommen immer die Meldungen:

    Freigeben des Tabsheets fehlgeschlagen

    für jedes Tab.

    Wie kann ich diese Tabs freigeben bevor das Fenster geschlossen wird ?

    Danke für die Hilfe



  • phlox81 schrieb:

    1. TabCtrl auf dialog setzen.
    2. Klasse DynTabCtrl in Projekt einbinden.
    3. Membervariable auf TabCtrl erstellen (entweder direkt DynTabCtrl, oder CTabCtrl und danach im Header mit DynTabCtrl ersetzen)
    4. Mach dir ein paar dialog, welche in den eigenschaften Untergeordnet und randlos sind.
    5. Die Dialogklassen von CDialog ableiten
    6. Den Header der Tab-Dialoge in die Datei des Hauptdialog einbinden(Da wo die TabCtrl ist).
    7. m_dynTabCtrl.InsertItem(new myDialog(), "Lustiger Titel", IDD_DIALOG1) aufrufen,
    um eine Tab hinzuzufügen.

    Bin auch gerade dabei, einen TabControl zu erstellen. Aber ich verstehe Punkt 4 und 5 nicht ganz: Wo erstelle ich einen neuen Dialog? Ausserhalb oder innerhalb meines Projektes? Ich bin eben einfach in der Resource Ansicht / "Dialog" auf "Insert Dialog" gegangen und habe nun ein neues IDD_DIALOG1, welches nun auch randlos und untergeordnet ist. Aber da gibts keine Header-Datei zu und wo muss ich da etwas ableiten? Wenn mir jemand Punkt 4 und 5 näher erläutern könnte, wäre ich sehr dankbar 🙂



  • Innerhalb des Projektes musst du den neuen Dialog machen, hast du also schon richtig gemacht. 🙂

    Und dann tust du das, was du sonst auch machst und erstellst eine Klasse für den Dialog.
    Die soll von CDialog abgeleitet sein, das ist sie aber fast automatisch, da musst du nur im Assistenten gucken, dass er das richtige macht.



  • estartu schrieb:

    Und dann tust du das, was du sonst auch machst und erstellst eine Klasse für den Dialog.

    Genau da verlassen sie mich ja schon, weil ich noch Neuling bin 😉 Es verwirrt mich ja schon, dass in der Datei "myApplicationDlg.cpp" die Klasse CAboutDlg deklariert wird, obwohl doch der Haupt-Dialog die Hauptsache hier ist und nicht diese "Randerscheinung" der About-Box.

    Wie lege ich denn eine neue Klasse an? Datei/Neu/Quelldatei und dann das ganze nochmal für die Header-Datei? Was muss dann darein? Gibts einen Assistenten der das übernimmt?



  • VC6? oder höher?



  • VC6++ (der Prof will es so 😃 )... aber warte eben, ich glaube ich habs gleich. Mr ist aufgefallen, dass der Hauptdialog in der Header-Datei als Klasse definiert ist und der optionale About-Dialog in der cpp-Datei. Ergo habe ich auch mal den neuen Dialog direkt dadrunter als Klasse eingetragen und er scheint es zu akzeptieren (ist sicher unschön zwei Klassen in einer cpp-Datei zu deklarieren oder?).
    Im Moment habe ich wohl die Verbindung zu DynTabCtrl nicht richtig, denn er erwartet bei InsertItem() immernoch einen int statt einer Klasse. Das finde ich sicher noch raus wieso.



  • Also, für VC6 wäre Schritt 5 ganz einfach:
    Die Ressource angucken.
    Strg+W drücken (Klassenassistent öffnen)
    Dialoge beantworten
    Fertig... du hättest eine neue Klasse in einem eigenen H+cpp Dateipärchen. 🙂

    Also falls dein Weg nicht klappt, versuch es so mal.



  • Hmmmm prinzipiell funktionierts, aber nur mit dem Standard CTabControl, und da sehe nur meine 3 Tabs, aber keine Spur von den Inhalten. DynTabCtrl bekomme ich nicht eingebunden. Ich kann im Header zwar aus "CTabCtrl m_TabCtrl" ein "DynTabCtrl m_TabCtrl" machen, aber dann bekomme ich beim Linking einige unresolved symbols... die DynTabCtrl.h ist aber oben im Kopf included.



  • Hast du die beiden Dateien zu DynTabCtrl auch dem Projekt hinzugefügt?

    unresolved symbols heißt, dass was im Cpp fehlt - oder eben das ganze Cpp oder eine lib.



  • Ahhh 🙂 Hatte es nur included... jetzt klappts, danke für Deine Hilfe!


Anmelden zum Antworten