檢視原始碼 wxScrollBar (wx v2.4.3)
wxScrollBar
是一個控制項,代表水平或垂直捲軸。
它與某些視窗自動提供的兩個捲軸不同,但這兩種捲軸共享接收事件的方式。
備註:捲軸具有以下主要屬性:範圍、滑塊大小、頁面大小和位置。範圍是與捲軸所代表的視圖相關聯的單位總數。對於一個有 15 個欄位的表格,範圍將為 15。滑塊大小是目前可見的單位數。對於表格範例,視窗大小可能調整為目前僅可見 5 個欄位,在這種情況下,應用程式會將滑塊大小設定為 5。當滑塊大小與範圍相同或更大時,捲軸將會在大多數平台上自動隱藏。頁面大小是當「分頁」瀏覽資料時,捲軸應該滾動的單位數。此值通常與滑塊大小長度相同,因為很自然地假設可見視窗大小定義了一個頁面。捲軸位置是目前的滑塊位置。大多數應用程式會發現提供一個名為 AdjustScrollbars() 的函式很方便,該函式可以從 OnSize 事件處理程序中最初呼叫,並在應用程式資料大小變更時呼叫。它將根據視窗大小和資料大小調整視圖、物件和頁面大小。
樣式
此類別支援以下樣式
wxSB_HORIZONTAL:指定水平捲軸。
wxSB_VERTICAL:指定垂直捲軸。
EVT_SCROLL_THUMBRELEASE 和 EVT_SCROLL_CHANGED 之間的差異
EVT_SCROLL_THUMBRELEASE 事件僅在實際使用滑鼠拖曳滑塊並釋放時發出(此 EVT_SCROLL_THUMBRELEASE 事件之後也會跟著一個 EVT_SCROLL_CHANGED 事件)。
當使用鍵盤變更滑塊位置,以及當點擊滑塊旁邊時,也會發生 EVT_SCROLL_CHANGED 事件(在所有這些情況下,不會發生 EVT_SCROLL_THUMBRELEASE 事件)。
簡而言之,無論滾動/移動是如何開始的,當滾動/移動完成時,都會觸發 EVT_SCROLL_CHANGED 事件。請參閱 page_samples_widgets(「滑桿」頁面)以查看 EVT_SCROLL_THUMBRELEASE 和 EVT_SCROLL_CHANGED 之間的差異。
請參閱
此類別繼承自以下類別,並可以使用其函式
wxWidgets 文件:wxScrollBar
事件
此類別發出的事件類型
摘要
函式
由捲軸建構函式呼叫的捲軸建立函式。
銷毀物件
傳回捲軸的頁面大小。
傳回捲軸的長度。
傳回捲軸滑塊的目前位置。
傳回滑塊或「視圖」大小。
預設建構函式。
建構函式,建立並顯示捲軸。
設定捲軸屬性。
設定捲軸的位置。
類型
-type wxScrollBar() :: wx:wx_object().
函式
-spec create(This, Parent, Id) -> boolean() when This :: wxScrollBar(), Parent :: wxWindow:wxWindow(), Id :: integer().
-spec create(This, Parent, Id, [Option]) -> boolean() when This :: wxScrollBar(), Parent :: wxWindow:wxWindow(), Id :: integer(), Option :: {pos, {X :: integer(), Y :: integer()}} | {size, {W :: integer(), H :: integer()}} | {style, integer()} | {validator, wx:wx_object()}.
由捲軸建構函式呼叫的捲軸建立函式。
詳細資料請參閱 new/3
。
-spec destroy(This :: wxScrollBar()) -> ok.
銷毀物件
-spec getPageSize(This) -> integer() when This :: wxScrollBar().
傳回捲軸的頁面大小。
這是當使用者向上或向下分頁時將滾動的捲動單位數。通常與滑塊大小相同。
請參閱:setScrollbar/6
-spec getRange(This) -> integer() when This :: wxScrollBar().
傳回捲軸的長度。
請參閱:setScrollbar/6
-spec getThumbPosition(This) -> integer() when This :: wxScrollBar().
傳回捲軸滑塊的目前位置。
-spec getThumbSize(This) -> integer() when This :: wxScrollBar().
傳回滑塊或「視圖」大小。
請參閱:setScrollbar/6
-spec new() -> wxScrollBar().
預設建構函式。
-spec new(Parent, Id) -> wxScrollBar() when Parent :: wxWindow:wxWindow(), Id :: integer().
等同於 new(Parent, Id, [])
。
-spec new(Parent, Id, [Option]) -> wxScrollBar() when Parent :: wxWindow:wxWindow(), Id :: integer(), Option :: {pos, {X :: integer(), Y :: integer()}} | {size, {W :: integer(), H :: integer()}} | {style, integer()} | {validator, wx:wx_object()}.
建構函式,建立並顯示捲軸。
請參閱:create/4
-spec setScrollbar(This, Position, ThumbSize, Range, PageSize) -> ok when This :: wxScrollBar(), Position :: integer(), ThumbSize :: integer(), Range :: integer(), PageSize :: integer().
等同於 setScrollbar(This, Position, ThumbSize, Range, PageSize, [])
。
-spec setScrollbar(This, Position, ThumbSize, Range, PageSize, [Option]) -> ok when This :: wxScrollBar(), Position :: integer(), ThumbSize :: integer(), Range :: integer(), PageSize :: integer(), Option :: {refresh, boolean()}.
設定捲軸屬性。
備註:假設您想要使用相同的字型顯示 50 行文字。視窗大小調整為您一次只能看到 16 行。您將使用:頁面大小比滑塊大小小 1,以便上一頁的最後一行在下一頁中可見,以幫助使用者定位。請注意,在此視窗大小下,滑塊位置永遠不會高於 50 減 16,即 34。您可以透過將目前的視圖大小除以像素字元高度來判斷目前可見的行數。當您定義自己的捲軸行為時,當視窗大小變更時,您始終需要重新計算捲軸設定。因此,您可以將捲軸計算和 setScrollbar/6
呼叫放入名為 AdjustScrollbars 的函式中,該函式可以從最初以及從 wxSizeEvent
事件處理函式中呼叫。
-spec setThumbPosition(This, ViewStart) -> ok when This :: wxScrollBar(), ViewStart :: integer().
設定捲軸的位置。