News:

Accounts with zero posts and zero activity during the last months will be deleted periodically to fight SPAM!

Main Menu

wxNotebook troubles

Started by sethjackson, February 17, 2006, 07:52:28 PM

Previous topic - Next topic

sethjackson

Code (cpp) Select

m_pNotebook = new wxNotebook(this,
                                 wxID_ANY,
                                 wxDefaultPosition,
                                 wxDefaultSize);

    // Create a new text control using our member pointer.

m_pTextCtrl = new TextCtrl(m_pNotebook,
                               wxID_ANY,
                           wxEmptyString,
                               wxDefaultPosition,
                               wxDefaultSize,
                               wxTE_MULTILINE | wxHSCROLL);

    m_pNotebook->InsertPage(m_pNotebook->GetPageCount(), m_pTextCtrl);


I get this error.

main.cpp:40: error: no matching function for call to `wxNotebook::InsertPage(size_t, TextCtrl*&)'
C:/wxWidgets-2.6.2/include/wx/msw/notebook.h:136: note: candidates are: virtual bool wxNotebook::InsertPage(size_t, wxNotebookPage*, const wxString&, bool, int)

TextCtrl is my own text control object derived from wxTextCtrl. I wan't to have a tabbed text editor..... How to? Sorry for the dumb question....  :P

thomas

"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

sethjackson

#2
Ok. Does TextCtrl parent need to be the notebook or this (this = my main frame)?

EDIT:

when TextCtrl parent is the notebook I get SIGSEV.....  :P What am I doing wrong? I want the inserted page to have a wxTextCtrl. How to do this?

thomas

I would use this ( = main frame), never sure which is right and which is not, but using the main frame usually works fine with everything :)
"We should forget about small efficiencies, say about 97% of the time: Premature quotation is the root of public humiliation."

sethjackson

So how do I have my notebook have a tab with a text ctrl?

eranif

#5
Usually it is better to use the notebook itself as the parent of the page.

In the wxFlatNotebook, for example, the control reparent the page when inserted to it:

AddPage(wxWindow* win, ... )
{
if(!win)
   return;

win->Reparent(this);
}

to add text control:


to add a text control just do:

wxTextCtrl *text = new wxTextCtrl(m_pNotebook, wxID_ANY, wxT(""), wxDefaultPosition, wxDefaultSize, wxTE_PROCESS_ENTER | wxTE_MULTILINE);
m_pNotebook->AddPage(text, wxT("Page #1"));


Eran

sethjackson

I have it working now. Thanks guys.  :D