2013-10-03 2 views
0

У меня есть класс с именем MyListView, который является производным от wxListCtrl, и этот класс действует как страница для wxNotebook.Как получить идентификатор страницы при использовании wxNotebook?

MyListView* l = new MyListView(m_notebook, -1, m_serverLog, incoming_socket); 
m_notebook->AddPage(l, "Log", true); 

Внутри этого класса иногда необходимо изменить заголовок закладки, отображаемой wxNotebook.

Согласно документации, это функция для использования:

wxNotebook :: SetPageText

bool SetPageText(size_t page, const wxString& text)

Устанавливает текст для данной страницы.

Проблема в том, что в настоящее время это не обязательно выбранная в настоящий момент страница.

Каков наилучший способ узнать, какой идентификатор страницы в настоящее время имеет, с помощью которой она может быть идентифицирована вышеуказанной функцией?

ответ

1

С wxWidgets 2.9.5 вы можете использовать notebook->FindPage(this), чтобы найти индекс страницы в записной книжке. В предыдущей версии вы могли бы просто перебрать все страницы ноутбуков самостоятельно, чтобы найти тот, который вам интересен (так как это FindPage() все равно).

Наконец, довольно часто вы работаете только с просматриваемой в настоящее время страницей, и в этом случае вы можете использовать notebook->GetSelection().

+0

Теперь я чувствую себя глупо. Я загрузил 2,9,5, использовал документы для 2.9.5 и пытался использовать FindPage уже, что дало мне только сообщения об ошибках. Теперь я узнал, что на самом деле я никогда не устанавливал/не компилировал 2.9.5: D. Спасибо за ваш ответ, тем не менее: D – leetfan

Смежные вопросы