Это контейнер, на него нацепляются два окна (наследники от wxWindow) ф-ей bool SplitVertically(wxWindow* window1, wxWindow* window2, int sashPosition = 0) или bool SplitHorizontally(wxWindow* window1, wxWindow* window2, int sashPosition = 0), смотря как ты хочешь разделить окно (вертикально или горизонтально).
см. стр. 81 книги Смарта
#ifndef __mframe__
#define __mframe__
#include <wx/panel.h>
#include <wx/gdicmn.h>
#include <wx/font.h>
#include <wx/colour.h>
#include <wx/settings.h>
#include <wx/string.h>
#include <wx/splitter.h>
#include <wx/sizer.h>
#include <wx/frame.h>
///////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////
/// Class mFrame
///////////////////////////////////////////////////////////////////////////////
class mFrame : public wxFrame
{
private:
protected:
wxSplitterWindow* m_splitter;
wxPanel* m_panelLeft;
wxPanel* m_panelRight;
public:
mFrame( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = wxEmptyString, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 500,300 ), long style = wxDEFAULT_FRAME_STYLE|wxTAB_TRAVERSAL );
~mFrame();
void m_splitterOnIdle( wxIdleEvent& )
{
m_splitter->SetSashPosition( 0 );
m_splitter->Disconnect( wxEVT_IDLE, wxIdleEventHandler( mFrame::m_splitterOnIdle ), NULL, this );
}
};
#endif //__mframe__
#include "mframe.h"
///////////////////////////////////////////////////////////////////////////
mFrame::mFrame( wxWindow* parent, wxWindowID id, const wxString& title, const wxPoint& pos, const wxSize& size, long style ) : wxFrame( parent, id, title, pos, size, style )
{
this->SetSizeHints( wxDefaultSize, wxDefaultSize );
wxBoxSizer* bSizer;
bSizer = new wxBoxSizer( wxVERTICAL );
m_splitter = new wxSplitterWindow( this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_3D );
m_splitter->Connect( wxEVT_IDLE, wxIdleEventHandler( mFrame::m_splitterOnIdle ), NULL, this );
m_panelLeft = new wxPanel( m_splitter, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
m_panelRight = new wxPanel( m_splitter, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTAB_TRAVERSAL );
m_splitter->SplitVertically( m_panelLeft, m_panelRight, 0 );
bSizer->Add( m_splitter, 1, wxEXPAND, 5 );
this->SetSizer( bSizer );
this->Layout();
this->Centre( wxBOTH );
}
mFrame::~mFrame()
{
}