Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » Cformview´s hin und her switchen

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 < [ 2 ]
000
05.04.2003, 09:22 Uhr
~success
Gast


hi
ich habe folgendes problem:

ich hab eine SDI mit geteiltem Fenster in VC++ 6 sp5 erstellt.

siehe hier: http://bilder.internetsuccess.at/programm.jpg

ich will im endefekt ca. 40 CFormView´s switchen können.
das heißt, ich habe in vc einfach etliche cformviews (alle eine extra klasse) erstellt, und will sie dann je nach auswahl im menü auf der rechten seite switchen können... je nach dem, welche zu der menüauswahl dazugehört.
denn ich brauche in jeder cformview meine buttons, listbox´n, eingabefelder usw...

wie kann ich das machen, ich schaffe dies absolut nicht!!

wie geht das?

(falls mich jemand nicht versteht, was ich jett meine: ich vergleiche dies nun mit einer Webseite, wo links das menü ist (dieser frame bleibt immer gleich) und NUR die rechte seite ändert sich (somit 2 frames))

bitte um hilfe, ich verzweifle voll.....
danke

robert
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
05.04.2003, 09:37 Uhr
Uwe
C/C++ Master
(Administrator)


Hallo,
ich nehme an, Du hast die Klasse von Codeguru genommen, welche ich mal verlinkt habe. Wie in dem Thread schon geschrieben hat das Teil ein paar kleine Bugs welche aber durch lesen der Comments weitestgehend behoben werden können.
http://codeguru.earthweb.com/mfc/comments/5961.shtml
sowie die Antwort von Phil Tordoff vom 08.05.2002.
--
"Es ist schwierig, ein Programm wirklich idiotensicher zu machen, weil Idioten so genial sind."

Bis dann...
Uwe
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
05.04.2003, 11:12 Uhr
~Success
Gast


hi

danke für die hilfe!!

aber ich ich habe die ganzen * nicht.....
keine ahnung, woher ich die bekomme, zb: CRuntimeClass* pNewViewClass

woher bekomme ich die funktion "DeleteView()" usw......

sorry, bin noch anfänger...... :-(

danke.....
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
05.04.2003, 14:00 Uhr
Volle



Hi zusammen,

ich habe auch mal ein Projekt angefangen, in dem ich das gebraucht habe. Allerdings wurde das nie vollendet .

Aber so problematisch ist das nicht. Ich habe es mir gerade nochmal angeschaut. CSplitterWnd bietet dir ja die Memberfunktionen, um die Views zu zerstören und wieder anzuzeigen. Also musst du nur die "alte" Ansicht rauswerfen und mit dem entsprechenden CreatContext wieder eine neune erzeugen.

Aber das ist sicher nicht DAS Thema für einen kompletten Newbie. Aber man kommt schon durch.

Die folgende Funktion tauscht bei mir die Views aus. Ich hoffe du kommst klar damit:


C++:
void CPaneContainer::SetView(enum SubViews aSubView, bool saveViewPointer /*= true*/)
{
    CRuntimeClass* subView = GetPaneRTClass(aSubView);

    if (subView)
    {
        CCreateContext pCC;
        pCC.m_pCurrentDoc = GetDocument();
        pCC.m_pNewViewClass = subView;
        pCC.m_pLastView = this;
        (CView*)m_splitter.GetPane(1,0)->DestroyWindow();
        m_splitter.CreateView(1,0, subView, CSize(0,0), &pCC);
        m_splitter.RecalcLayout();
        
        //Update an Views senden um OnInitialUpdate aufzurufen
        CMVApp* pApp = (CMVApp*)AfxGetApp();
        POSITION pos = pApp->GetFirstDocTemplatePosition();
        CDocTemplate* pDocTemplate = pApp->GetNextDocTemplate(pos);
        pDocTemplate->InitialUpdateFrame((CMainFrame*)AfxGetMainWnd(), GetDocument());

        if (saveViewPointer)
            pVRing->Insert(aSubView);
    }
}



Grüße, Volle.

P.S.: Das ist wie gesagt Code, der nicht fertig geschrieben wurde. Das musste ich jetzt noch erwähnen, nachdem ich ihn selbst nochmal ein bisschen genauer angeschaut habe. Das ist ja furchtbar ...

Dieser Post wurde am 05.04.2003 um 14:02 Uhr von Volle editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
05.04.2003, 14:14 Uhr
~Success
Gast


danke!

aber welche klasse ist das denn?? ->CPaneContainer

oder SubViews aSubView ?

hmmmm

scheint für mich doch recht schwierig zu sein......

vielleicht sagst du mir noch, was das ist, dann komme ich vielleicht klar!......

danke vielmals!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
06.04.2003, 10:50 Uhr
Volle



Hi,

CPaneContainer ist das "Basisfenster", in dem der Splitter deklariert wurde. Bei dir ist das vermutlich CMainFrame. Und subView ist einfach die RunTimeInformation der Klasse, die du darstellen möchtest. Diese Information benötigt CreateView, um das Fenster zu erzeugen.

Wirklich wichtig für dich sind eigentlich nur die 6 oder 7 Zeilen nach dem if. Ich brauchte bei mir nur eine Logik, um die Views zu verwalten. Das wirst du ja vielleicht auch brauchen. Vielleicht willst du ja durch die Views mit einem Vor- bzw. Zurück- Button durchnavigieren. Ich habe mir da eine Art binären Ring gemacht, auf dem ein Merker immer die aktuelle Position anzeigt, und jedes Element auf den Vorgänger bzw. Nachfolger verweist.

Sehr informativ zu diesem Thema ist auch der Code, auf den Uwe schon verwiesen hat.

Gruß, Volle.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
06.04.2003, 11:51 Uhr
~Success
Gast


hi

jad, das von uwe hab ich auch schon versucht, da kommt ein neues fenster, das mich fragt, was ich für eine CVormView öffnen möchte ??!!

und nun zu deinem:

das mit der subview, das leuchtet mir nicht ein..... die muss ich doch erzeugen vorher... oder?

und dann erst create...

danke
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
06.04.2003, 12:53 Uhr
mike
Pinguinhüpfer
(Operator)


Hi!
Ich hab eine Klasse AW_MultiViewDemo. Konnte sie leider nirgends mehr finden. Die musst du einfach in dein Projekt einfügen und du kannst zwischen Form Views switchen. Ich kanns sie dir per mial schicken. Oder probier ftp://80.121.0.68 (nicht immer online und momentan noch dyn. Adresse)

mfg mike
--
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
06.04.2003, 13:10 Uhr
~Success
Gast


hi ho!

da sag ich einfach NUR danke!!!!

ich hab es mir runtergeladen!

das ist genau, aber echt ganz gena, daß was ich suche!!!!

danke!!!

danke, success
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
06.04.2003, 14:20 Uhr
~Success
Gast


danke nochmal! es funktioniert FAST so, wie ich es mir gewunschen habe!

einen kleinen fehler hab ich noch:

wenn ich das programm starte, startet es meine 2 dialogfelder am anfang nicht (passworteingabe und so ein introdialog)

statt dessen kommt dieses bild:

http://bilder.internetsuccess.at/fehler.jpg

vielleicht hast du ne idee!?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 < [ 2 ]     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: