crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в Как подружить wxRibbonBar и плавающие окна wxAui
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
 

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
msn Дата 20.10.2010, 15:07
  Привет Всем!
Проблема решена с помощью дополнительной панели
Я создал панель и сделал ее родителем _Manager.
class MainFrame: public wxFrame
{
wxAuiManager _Manager;
    wxRibbonBar* _StdToolBar;
    wxTreeCtrl* _InfoTree;
    wxAuiNotebook* _Notebook;  

public:
    MainFrame()
        : wxFrame(NULL)
    {
        // Создать wxRibbonBar
        _StdToolBar = new wxRibbonBar(this);
        new wxRibbonPage(_StdToolBar, wxID_ANY, wxT("Examples"));
        new wxRibbonPage(_StdToolBar, wxID_ANY, wxT("QQQ"));
        _StdToolBar->Realise();
        wxSizer* s = new wxBoxSizer(wxVERTICAL);
        s->Add(_StdToolBar, 0, wxEXPAND);
                          wxPanel* main_panel = new wxPanel(this, wxID_ANY);
        s->Add(main_panel, 1, wxEXPAND);
                          SetSizer(s);

       _Manager.SetManagedWindow(main_panel);

       _Notebook = new wxAuiNotebook(main_panel);
        wxPanel* Page1 = new wxPanel(_Notebook, wxID_ANY);
        wxPanel* Page2 = new wxPanel(_Notebook, wxID_ANY);
        _Notebook->AddPage(Page1, _("Page1"));
        _Notebook->AddPage(Page2, _("Page2"));

       _InfoTree = new wxTreeCtrl(main_panel);

        _Manager.AddPane(_Notebook, wxAuiPaneInfo().CenterPane());
        _Manager.AddPane(_InfoTree, wxAuiPaneInfo().Left().Layer(1));
        _Manager.Update();
     }
   // ...
};

Тема закрыта.
Спасибо за внимание.
msn Дата 19.10.2010, 16:18
  Привет Всем!
Проблема в следующем:
На wxFrame есть wxRibbonBar.
Он вертикальным сайзером помещен в верхнюю часть фрейма.
Нужно добавить wxTreeCtrl и wxAuiNotebook как плавающие окна.
Для размещения использую wxAuiManager.
При попытке сделать это рушится wxRibbonBar.
Вот кусочек кода:
class MainFrame: public wxFrame
{
    wxAuiManager _Manager;
    wxRibbonBar* _StdToolBar;
    wxTreeCtrl* _InfoTree;
    wxAuiNotebook* _Notebook;  

public:
    MainFrame()
        : wxFrame(NULL)
    {
        // Создать wxRibbonBar
        _StdToolBar = new wxRibbonBar(this);
        new wxRibbonPage(_StdToolBar, wxID_ANY, wxT("Examples"));
        new wxRibbonPage(_StdToolBar, wxID_ANY, wxT("QQQ"));
        _StdToolBar->Realise();
        wxSizer* s = new wxBoxSizer(wxVERTICAL);
        s->Add(_StdToolBar);
        SetSizer(s);

       _Manager.SetManagedWindow(this);

       _Notebook = new wxAuiNotebook(this);
        wxPanel* Page1 = new wxPanel(_Notebook, wxID_ANY);
        wxPanel* Page2 = new wxPanel(_Notebook, wxID_ANY);
        _Notebook->AddPage(Page1, _("Page1"));
        _Notebook->AddPage(Page2, _("Page2"));

       _InfoTree = new wxTreeCtrl(this);

        _Manager.AddPane(_Notebook, wxAuiPaneInfo().CenterPane());
        _Manager.AddPane(_InfoTree, wxAuiPaneInfo().Left().Layer(1));
        _Manager.Update();
     }
   // ...
};

Что я делаю неправильно?
Заранее спасибо.
Просмотр темы полностью (откроется в новом окне)
RSS Текстовая версия Сейчас: 5.12.2021, 20:28