Probleme mit CSplitterWnd



  • Hallo ihr
    Ich spiele zur Zeit ein bisschen mit MFC für einen Editor herum und will mein Hauptfenster in 4 Teile unterteilen (einfache arbeitsflächen OHNE Titelleiste etc)...
    Ich habe allerdings ein starkes Problem die KLasse CSplitterWnd zu verstehen...
    Kann mir damit jemand helfen...
    CodeGuru und auch COdeproject tutorials richten sich eher an MFC Freaks als an mich als WinApi DX Coder 🙂

    Das Hauptprinzip habe ich schon verstanden aber folgendes macht mir probleme:
    Ich rufe CSplitterWnd.CreateStatic(1,1,size,etc...) auf um 2x2 Fenster zu öffnen..
    Dann muss man ja diese CSplitterWnd.CreateView aufrufen..
    Aber bei der RUNTIME_CLASS blick ich net durch..
    ZUdem scheint man da ja noch 30 Klassen mitzuimplementieren zu müssen
    Hätte da vielleicht jemand kurz Zeit mir zu sagen welche Objecte ich brauche und wo was hingehört...
    Danke
    P.S.: Brauche nur eine knappe beschreibung.Kann ja coden nur bei MFC sehe ich so aus: 😕 dann so 😡 und am ende 😮



  • CSplitterWnd m_wndSplitter; in Header anlegen (kann sein das man noch ein Header einbinden muß für CSplitterWnd steht aber in MSDN)

    cpp:
    #include "StringView.h"  includen
    
    // methode überschreiben
    BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
        CCreateContext* pContext)
    {
        VERIFY(m_wndSplitter.CreateStatic(this, 2, 1));
        VERIFY(m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CStringView),
                                        CSize(100, 100), pContext));
        VERIFY(m_wndSplitter.CreateView(1, 0, RUNTIME_CLASS(CStringView),
                                        CSize(100, 100), pContext));
        return TRUE;
    }
    
    macht darus
    
    --------
    |______|
    |      |
    |      |
    --------
    


  • Sorry, aber ich habe noch immer ein Problem.
    Bei mir gibt es keine StringView.h
    Es gibt höchstens eine ChildView.h aber die enthält keine RUNTIME_CLASS
    Und wenn ich m_ChildView als RUNTIME_CLASS angebe heisst es kein Namespace oder so 😞
    Bin ich dazu zudumm???



  • Hi!
    Probiers mal so:
    BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT /*lpcs*/,
    CCreateContext* pContext)
    {
    return m_wndSplitter.Craete(this,2,2,CSize(10,10),pContext);
    }

    Wenn du ne MDI splitten willst, musst du das in deiner ChildView Klasse machen.

    mfg *mike* 😃


Anmelden zum Antworten