Von einer allgemeinen Klasse mit * auf CListBox ??



  • Wird der String garnicht eingefügt oder nur nicht angezeigt ?!

    Du musst ggf. auch mit UpdateData() die Elemente auf den aktuellen Wert setzen.



  • hi

    UpdateData() funktioniert nicht, das hab ich schon versucht.

    einfügen tut er es vielleicht, das weiss ich nicht, aber zumindest anzeigen tut er es auch nicht...



  • Na was heisst vielleicht ?! Das kannst doch prüfen.

    Wird die Variable mit DDX_Control (o.ä.) bekannt gemacht ?



  • Mit UpdateData() werden nur "Rohdaten" zwischen den Member-Variablen und den Controls transferiert. Direktaufrufe wie AddString() benötigen keinen Aufruf von UpdateData().

    Könntest Du Deinen Vorgehensweise etwas präzisieren?



  • also nochmal 🙂

    sorry, bin noch recht neu in sache programmieren...

    also, ich habe eine SDI mit geteiltem fenster.
    auf der linken seite habe ich eine komplette menüführung bla bla bla.
    auf der rechten seite habe ich eine CFormView. in diese hab ich eine CListBox hineingezogen. dann wähle ich mit der rechten maustaste "Klassenassistent". da werde ich als erstes gefragt, ob ich die listbox in eine vorhandene klasse oder in eine neue klasse geben will. ich nehme eine neue klasse, die von CDialog abgeleitet sein soll, das macht er automatisch!

    nun wenn ich einen button in der menüführung wähle, wird diese in der CMainFrame ausgeführt. dort frage ich dann ab, welcher button gedrückt wurde und will dann in meine neu angelegte, von CDialog abgeleiteten klasse, hineinspringen und in diese Listbox zb. AddString("bla bla"); aufrufen.

    zurzeit kann ich NUR in der CFormView das machen, aber nur in der OnInitdialog();
    das soll aber nicht so sein.

    oder habt iehr ne bessere idee, wie ich es verwirklichen könnte:
    wie gesagt ich hab 12 Buttons und weitere UnterButtons (sowie OutlookLeiste links). im ganzen hab ich ca. 40 Sheets auf der rechten seite. wie kann ich es machen, dass wenn ich einen beliebigen button drücke, das richtige sheet kommt?? oder muss ich ALLE elemente in das eine, schon beim erzeugen bestehende, CFormView legen?? das ist nähmlich extrem viel arbeit....
    kann ich für jeden menüpunkt eine eigene klasse bzw eigene CFormView nehmen? wenn ja, wie mach ich das, daß ich die neue über die alte drüberlege?

    danke für eure hilfe!! danke

    ciao



  • In eine Klasse kann man nicht "hineinspringen", Du musst schon ein Objekt bzw. eine Instanz davon haben oder erzeugen. Aber wenn ich den Code von CFormView::CFormView richtig interpretiere, dann ist die CFormView der Dialog selber. Was man dann machen muss, kann ich leider nicht sagen, weiß jemand besser bescheid über FormViews, als ich?



  • Original erstellt von Shaggy:
    "Rohdaten"

    Ne, das sind ganz normale Daten. UpdateData gleicht je nach Parameter Control->Variable oder umgekehrt ab



  • hmmmmm

    aber habt ihr einen tip, was bzw wie ich machen könnte, daß so wie in HTML.
    ich habe auf der linken seine ein menü mit hyperlinks und auf der linken seite zb der frame, der sich immer verändert.

    eigendlich brauche ich genau das.

    das heißt, ich erzeuge um die 30 CFormView´s, kann diese beliebig bestücken usw.

    aber wie und wo rufe ich die dann auf??
    am besten wäre dies, wenn ich diese aus der CMainFrame aufrufen / erzeugen könnte.

    danke danke

    ciao
    success



  • ich meine das so:

    Bitte dieses Bild anschauen: http://bilder.internetsuccess.at/programm.jpg

    bitte um hilfe, danke
    success



  • Was heißt du erstellst eine neue Klasse für eine ListBox?

    Wenn du eine SDI mit 2 Frames hast, dann gibst du beim erstellen der Frames bereits die Klassen der einzelnen Fenster an.

    Du hast also bereits eine Klasse für dein FormView welche von CFormView abgeleitet ist.
    Oder nicht?
    Warum musst du dann noch eine für ListBox erstellen?
    CDialog ist sowieso falsch außer du erstellst einen Dialog. Ein FormView ist aber eigentlich kein Dialog



  • Ok, ich weiss jetzt endlich, was hier gewünscht wird.
    Schau Dir dazu am besten mal folgenden Link an: http://www.codeproject.com/dialog/csettingsdlg.asp

    Hier ist auf der linken Seite ein TreeCtrl, auf der rechten Seite verschiedene PropertyPages (welches auch nur Dialoge sind). Die rechte Seite wird dann dynamisch aufgrund des geklickten TreeItems geändert.

    @Unix-Tom

    Ein FormView ist aber eigentlich kein Dialog

    Doch 😉 , nur dass er wie jedes CView grössenänderbar ist.



  • @RenéG

    jaaaaa! entlich hat mich jemand richtig verstanden 🙂 genau sowas in der art brauche ich 🙂

    aber gibt es sowas auch in ner SDI, denn es ist schon einiges anders mit dem SplitterWnd.

    wie handhabe ich sowas? leider hab ich noch wenig erfahrung 😞

    danke erstmal für diese hilfe, leider bringt es noch nicht viel!

    danke danke

    ciao
    robert



  • Is doch egal, ob MDI, SDI oder Dialog.
    Du musst nur auf die Änderung im 'LeftView' reagieren und danach den Dialog im RightView aktivieren bzw. sichtbar machen.

    Wie man sowas handhabt, findet sich sicherlich auch irgendwo ein Beispiel, ist ja ähnlich dem Explorer.



  • Doch 😉 , nur dass er wie jedes CView grössenänderbar ist

    Ist klar nur wird ein Dialog von CDialog abgeleitet und ein FormView von CFormView.
    Success hat aber seinen FormView oder welchen jetzt auch immer von CDialog abgeleitet



  • hi

    ja, das ist genau der punkt. ich fange alle ereignise vom menü in cd CMainFrame ab.

    1. wie greife ich auf die CFormView auf der rechten seite zu?
    2. wie bekomme ich das eben hin, das ich mehrere CVormviews habe, ich möchte für jedes einzelne sheet eine eigene klasse haben.
    3. gibts da nicht so ein beispiel..... ich verzweifle, ich find nix... 😞

    danke.
    robert



  • Wo bist Du? Im SplitterWnd oder in der Outbar?

    Im Splitter:
    CWnd * pWnd = GetPane(0,1);
    if(pWnd->IsKindOf(RUNTIME_CLASS(CFormView)))
    {
    //Dein Code
    }

    In der Outbar:
    CSplitterWnd * pSplitter = (CSplitterWnd*)GetOwner();
    dann wie oben



  • hi

    danke, ich hoffe das hilft mir weiter.

    wie gesagt, ich fange jeden buttonklick im CMainFrame ab. - von dort aus möchte ich dann die dazugehörigen klassen aufrufen.....

    aber geht das dann, dass ich mehrere CFormView´s mache, denn wenn ich nur so eine erzeuge, regt der kompiler sich auf, ohne das ich nur irgendwas damit machen.

    die meldung: keine IDD oder so....

    danke erstmal, vielleicht hast du ja noch ein paar tips

    danke danke
    robert


Anmelden zum Antworten