wxWidgets:滚动窗口
wxWidgets:滚动窗口
滚动条在 wxWidgets 中有多种形式。
所有窗口都有可能显示垂直滚动条和/或水平滚动条:这是窗口的基本功能。然而,在实践中,并非所有窗口都使用滚动条,例如单行wxTextCtrl。
因为从wxWindow派生的任何类都可能有滚动条,所以有操作滚动条的函数和事件处理程序来拦截滚动事件。但仅仅因为窗口生成滚动事件,并不意味着窗口必须处理它并物理滚动窗口。基类wxWindow实际上没有任何默认功能来处理滚动事件。如果您创建了一个带有滚动条的wxWindow对象,然后单击滚动条,则什么也不会发生。这是故意的,因为滚动事件的解释因窗口类而异。
wxScrolledWindow(以前称为 wxCanvas)是一个添加功能以使滚动真正起作用的窗口示例。它假设滚动发生在一致的单位,而不是不同大小的跳转,并且页面大小由窗口的可见部分表示。它适用于绘图应用程序,但可能不太适合复杂的编辑器,其中滚动的数量可能会根据给定行上的文本大小而变化。为此,您将从wxWindow派生并自己实现滚动。wxGrid是一个实现自己滚动的类的例子,主要是因为列和行的大小可以不同。
滚动条模型
函数wxWindow::SetScrollbar提供了有关滚动条建模方式的线索。此函数采用以下参数: