2016-06-27 2 views
2

Я использую WxWidgets и осуществлять скроллбар в моем простом приложении, и для правильной инициализации прокрутки мне нужно знать общую высоту виджетов внутри прокручиваются области.Получение высоты панели WxWidgets, которая не является полностью видимым

Я не могу получить правильную высоту виджетов, которые не полностью видны.

Есть ли способ получить высоту тезисов скрытых предметов? Метод

image from imgur.com

+0

Вы не можете получить высоту/ширину элемента управления (независимо от того, какой контроль есть), если этот элемент управления полностью не реализован. Система еще не знает об этом. И даже если эта информация будет доступна - она ​​не будет переносимой, поскольку размеры GTK доступны ТОЛЬКО для реализованных окон. – Igor

+1

Вы уверены, что вам это нужно? Полосы прокрутки должны быть настроены правильно, без вашего обращения с ним вручную, с помощью 'wxWidgets', а также любого другого инструментария. Есть варианты того, как они будут себя вести. Есть что-то особенное, что вы хотите сделать? – zdim

+0

@zdim Мне кажется, мне нужна эта информация. Я использую wxVScrolledWindow class [documentation] (http://docs.wxwidgets.org/trunk/classwx_v_scrolled_window.html). Если вы хотите использовать этот класс, вам нужно будет извлечь из него и реализовать чистый виртуальный метод OnGetRowHeight(). Вы также должны вызвать SetRowCount(), чтобы базовый класс знал, сколько строк оно должно отображать ... – stepan

ответ

0

GetSize() возвращается правильные размеры. Проблема заключалась в использовании класса wxScrolledWindow, потому что «панели» внутри wxScrolledWindow имели размеры, такие как размер видимой части wxScrolleWindow. Таким образом, метод GetSize(), казалось, возвращал неправильную высоту. Полное решение этой проблемы описано здесь Resize a wxNotebook when content sizes changed

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

  • Нет связанных вопросов^_^