Witam.
Problem mam taki że wxSplitterWindow nie dosięga wxMenuBara ( tak jak na zdjęciu ). Reasumując SplitterWindow powinien sięgąć od góry do dołu.
Oczywiśćie SplitterWindow jest widoczny tylko gdy wezmę tryb pełno ekranowy , bo na normalny nic nie widać.
Plik źródło.cpp
#include"Nagłówek.h"
#include"utils.h"
IMPLEMENT_APP(Aplikacja);
bool Aplikacja::OnInit()
{
wxInitAllImageHandlers();
Ramka *wsk = new Ramka(NULL, wxID_ANY, tytul, wxDefaultPosition, wxSize(800,600), wxDEFAULT_FRAME_STYLE);
wsk->Show(true);
return true;
}
Ramka::Ramka(wxWindow *parent, wxWindowID id, const wxString &nazwa, const wxPoint &po, const wxSize &si, long style):wxFrame(parent,id,nazwa,po,si,style)
{
// Pasek Menu [Początek]
mb = new wxMenuBar();
mFile = new wxMenu();
mAddFile = new wxMenu();
mEdit = new wxMenu();
mView = new wxMenu();
mTools = new wxMenu();
mHelp = new wxMenu();
// Plik->Dodaj Plik
wxMenuItem *new_file = new wxMenuItem(mAddFile, wxID_ANY, wxT("Nowy Plik\tCtrl-N"), wxEmptyString);
new_file->SetBitmap(wxBitmap(wxGetPath("gfx/16/new_file.png"), wxBITMAP_TYPE_PNG));
mAddFile->Append(new_file);
mAddFile->Append(wxID_ANY, wxT("Istniejący plik"), wxEmptyString);
wxMenuItem *new_project = new wxMenuItem(mFile, wxID_ANY, wxT("Nowy Projekt\tCtrl-Shift-N"));
new_project->SetBitmap(wxBitmap(wxGetPath("gfx/16/new_project.png"), wxBITMAP_TYPE_PNG));
mFile->Append(new_project);
wxMenuItem *open_project = new wxMenuItem(mFile, wxID_ANY, wxT("Otwórz Projekt\tCtrl-Shift-O"));
open_project->SetBitmap(wxBitmap(wxGetPath("gfx/16/open_project.png"), wxBITMAP_TYPE_PNG));
mFile->Append(open_project);
mFile->AppendSeparator();
wxMenuItem *open_file = new wxMenuItem(mFile, wxID_ANY, wxT("Otwórz Plik\tCtrl-O"));
open_file->SetBitmap(wxBitmap(wxGetPath("gfx/16/open_file.png"), wxBITMAP_TYPE_PNG));
mFile->Append(open_file);
mFile->AppendSubMenu(mAddFile, wxT("Dodaj Plik"));
wxMenuItem *save_file = new wxMenuItem(mFile, wxID_ANY, wxT("Zapisz Plik\tCtrl-S"));
save_file->SetBitmap(wxBitmap(wxGetPath("gfx/16/save_file.png"), wxBITMAP_TYPE_PNG));
mFile->Append(save_file);
wxMenuItem *save_file_as = new wxMenuItem(mFile, wxID_ANY, wxT("Zapisz Plik jako...\tCtrl-Shift-S"));
save_file_as->SetBitmap(wxBitmap(wxGetPath("gfx/16/save_as.png"), wxBITMAP_TYPE_PNG));
mFile->Append(save_file_as);
wxMenuItem *save_file_all = new wxMenuItem(mFile, wxID_ANY, wxT("Zapisz Wszystko"));
save_file_all->SetBitmap(wxBitmap(wxGetPath("gfx/16/save_all.png"), wxBITMAP_TYPE_PNG));
mFile->Append(save_file_all);
mFile->Append(wxID_ANY, wxT("Zmień nazwę pliku"));
mFile->Append(wxID_ANY, wxT("Usuń Plik"));
mFile->Append(wxID_ANY, wxT("Zamknij Plik"));
mFile->AppendSeparator();
wxMenuItem *print = new wxMenuItem(mFile, wxID_ANY, wxT("Drukuj\tCtrl-P"));
print->SetBitmap(wxBitmap(wxGetPath("gfx/16/print.png"), wxBITMAP_TYPE_PNG));
mFile->Append(print);
wxMenuItem *show_print = new wxMenuItem(mFile, wxID_ANY, wxT("Podgląd Wydruku\tCtrl-Shift-P"));
show_print->SetBitmap(wxBitmap(wxGetPath("gfx/16/preview.png"), wxBITMAP_TYPE_PNG));
mFile->Append(show_print);
mFile->Append(wxID_ANY, wxT("Ustawienia Strony"));
mFile->AppendSeparator();
mFile->Append(wxID_ANY, wxT("Zamknij program"));
wxMenuItem *copy = new wxMenuItem(mEdit, wxID_ANY, wxT("Kopiuj\tCtrl-C"));
copy->SetBitmap(wxBitmap(wxGetPath("gfx/16/copy.png"), wxBITMAP_TYPE_PNG));
mEdit->Append(copy);
wxMenuItem *cut = new wxMenuItem(mEdit, wxID_ANY, wxT("Wytnij\tCtrl-X"));
cut->SetBitmap(wxBitmap(wxGetPath("gfx/16/cut.png"), wxBITMAP_TYPE_PNG));
mEdit->Append(cut);
wxMenuItem *paste = new wxMenuItem(mEdit, wxID_ANY, wxT("Wklej\tCtrl-V"));
paste->SetBitmap(wxBitmap(wxGetPath("gfx/16/paste.png"), wxBITMAP_TYPE_PNG));
mEdit->Append(paste);
mEdit->AppendSeparator();
mEdit->Append(wxID_ANY, wxT("Zaznacz Wszystko\tCtrl-A"));
mEdit->Append(wxID_ANY, wxT("Odwróć zaznaczanie\tCtrl-R"));
mEdit->AppendSeparator();
wxMenuItem *undo = new wxMenuItem(mEdit, wxID_ANY, wxT("Cofnij\tCtrl-Z"));
undo->SetBitmap(wxBitmap(wxGetPath("gfx/16/undo.png"), wxBITMAP_TYPE_PNG));
mEdit->Append(undo);
wxMenuItem *repet = new wxMenuItem(mEdit, wxID_ANY, wxT("Powtórz\tCtrl-Y"));
repet->SetBitmap(wxBitmap(wxGetPath("gfx/16/redo.png"), wxBITMAP_TYPE_PNG));
mEdit->Append(repet);
mEdit->AppendSeparator();
wxMenuItem *find = new wxMenuItem(mEdit, wxID_ANY, wxT("Znajdź\tCtrl-F"));
find->SetBitmap(wxBitmap(wxGetPath("gfx/16/find.png"), wxBITMAP_TYPE_PNG));
mEdit->Append(find);
mEdit->Append(wxID_ANY, wxT("Znajdź i zamień\tCtrl-H"));
mView->Append(wxID_ANY, wxT("Pełny Ekran\tF11"));
mView->AppendCheckItem(wxID_ANY, wxT("Zawijaj wiersze\tCtrl-W"));
mTools->Append(wxID_ANY, wxT("Nowa Klasa C++"));
wxMenuItem *help = new wxMenuItem(mHelp, wxID_ANY, wxT("O programie\tF1"));
help->SetBitmap(wxBitmap(wxGetPath("gfx/16/info.png"), wxBITMAP_TYPE_PNG));
mHelp->Append(help);
mb->Append(mFile, wxT("Plik"));
mb->Append(mEdit, wxT("Edycja"));
mb->Append(mView, wxT("Widok"));
mb->Append(mTools, wxT("Narzędzia"));
mb->Append(mHelp, wxT("Pomoc"));
this->SetMenuBar(mb);
// Pasek Menu [Koniec]]
// Pasek Narzędzi [Początek]
tb = new wxToolBar(this, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxTB_FLAT | wxTB_HORIZONTAL);
tb->SetToolBitmapSize(rozmiar_okna_paska_narzedzi);
tb->AddTool(wxID_ANY, wxT("Nowy Projekt"), wxBitmap(wxGetPath("gfx/22/new_project.png"),wxBITMAP_TYPE_PNG), wxNullBitmap,wxITEM_NORMAL,wxEmptyString,wxEmptyString);
tb->AddTool(wxID_ANY, wxT("Otwórz Projekt"), wxBitmap(wxGetPath("gfx/22/open_project.png"), wxBITMAP_TYPE_PNG), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString);
tb->AddSeparator();
tb->AddTool(wxID_ANY, wxT("Nowy Plik"), wxBitmap(wxGetPath("gfx/22/new_file.png"), wxBITMAP_TYPE_PNG), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString);
tb->AddTool(wxID_ANY, wxT("Zapisz Plik"), wxBitmap(wxGetPath("gfx/22/save_file.png"), wxBITMAP_TYPE_PNG), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString);
tb->AddTool(wxID_ANY, wxT("Zapisz wszystko"), wxBitmap(wxGetPath("gfx/22/save_all.png"), wxBITMAP_TYPE_PNG), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString);
tb->AddSeparator();
tb->AddTool(wxID_ANY, wxT("Drukuj"), wxBitmap(wxGetPath("gfx/22/print.png"), wxBITMAP_TYPE_PNG), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString);
tb->AddSeparator();
tb->AddTool(wxID_ANY, wxT("Kopiuj"), wxBitmap(wxGetPath("gfx/22/copy.png"), wxBITMAP_TYPE_PNG), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString);
tb->AddTool(wxID_ANY, wxT("Wytnij"), wxBitmap(wxGetPath("gfx/22/cut.png"), wxBITMAP_TYPE_PNG), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString);
tb->AddTool(wxID_ANY, wxT("Wklej"), wxBitmap(wxGetPath("gfx/22/paste.png"), wxBITMAP_TYPE_PNG), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString);
tb->AddSeparator();
tb->AddTool(wxID_ANY, wxT("Cofnij"), wxBitmap(wxGetPath("gfx/22/undo.png"), wxBITMAP_TYPE_PNG), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString);
tb->AddTool(wxID_ANY, wxT("Powtórz"), wxBitmap(wxGetPath("gfx/22/redo.png"), wxBITMAP_TYPE_PNG), wxNullBitmap, wxITEM_NORMAL, wxEmptyString, wxEmptyString);
tb->SetMargins(3, 3);
tb->Realize();
this->SetToolBar(tb);
// Pasek Narzędzi [Koniec]
wxStatusBar *sb = new wxStatusBar(this);
sb->SetFieldsCount(2);
this->SetStatusBar(sb);
SetStatusText(tytul, 0);
// Głowny sizer obszaru klienta
wxBoxSizer *mainSizer = new wxBoxSizer(wxVERTICAL);
this->SetSizer(mainSizer);
// Główny panel
panel = new wxPanel(this);
wxBoxSizer *panelSizer = new wxBoxSizer(wxVERTICAL);
panel->SetSizer(panelSizer);
mainSizer->Add(panel, 1, wxEXPAND | wxALL, 0);
// Kontener z dwiema kolumnami GUI
splitter = new wxSplitterWindow(panel, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSP_3DSASH | wxSP_NO_XP_THEME);
panelSizer->Add(splitter, 1, wxEXPAND | wxALL, 0);
left = new wxPanel(splitter, wxID_ANY);
right = new wxPanel(splitter, wxID_ANY);
left->SetMinSize(wxSize(200,-1));
right->SetMinSize(wxSize(200,-1));
splitter->SplitVertically(left, right, 250);
CenterOnScreen();
}
Plik Nagłówek.h
#ifndef Naglowek_h
#define Naglowek_h
#include<wx/wxprec.h>
#include<wx/wx.h>
#include<wx/splitter.h>
const wxString tytul = wxT("Edytor Sieciowy");
const wxSize rozmiar_okna_paska_narzedzi(22, 22);
class Aplikacja:public wxApp
{
public:
virtual bool OnInit();
};
class Ramka :public wxFrame
{
public:
Ramka(wxWindow *parent, wxWindowID id, const wxString &nazwa, const wxPoint &po, const wxSize &si, long style);
private:
wxMenuBar *mb;
wxMenu *mFile;
wxMenu *mAddFile;
wxMenu *mEdit;
wxMenu *mView;
wxMenu *mTools;
wxMenu *mHelp;
wxToolBar *tb;
wxPanel *panel, *left, *right;
wxSplitterWindow *splitter, *splitterRight;
};
#endif // !Naglowe_h
Jeśli będzie coś jeszcze potrzebne to proszę pisać to będę dorzucać. Bardzo mi zależy na rozwiązaniu tego problemu.
życzę miłego dnia oraz pozdrawiam serdecznie.
- wxSplitterWindow_problem_01.PNG (61 KB) - ściągnięć: 6
- wxSplitterWindow_problem_02.PNG (26 KB) - ściągnięć: 4
- wxSplitterWindow_problem.PNG (58 KB) - ściągnięć: 3