VC 之Scroll控制項

2021-04-13 09:52:49 字數 1418 閱讀 8208

scroll bar一般不會單獨使用,因為spinctrl可以取代滾動條的一部分作用,但是如果你需要自己生成派生視窗,滾動條還是會派上一些用場。建立乙個滾動條可以使用成員函式:

: bool cedit::create( lpctstr lpsztext, dword dwstyle, const rect& rect, cwnd* pparentwnd, uint nid = 0xffff );

其中dwstyle將指明該視窗的風格,除了子視窗常用的風格ws_child,ws_visible外,你可以針對滾動條指明專門的風格。

sbs_vert 風格將建立乙個垂直的滾動條。

sbs_horz 風格將建立乙個水平的滾動條。

在建立滾動條後需要呼叫void setscrollrange( int nminpos, int nmaxpos, bool bredraw = true )設定滾動範圍,

int getscrollpos( )/int setscrollpos( )用來得到和設定當前滾動條的位置。

void showscrollbar( bool bshow = true );用來顯示/隱藏滾動條。

bool enablescrollbar( uint narrowflags = esb_enable_both )用來設定滾動條上箭頭是否為允許狀態。narrowflags可取以下值:

esb_enable_both 兩個箭頭都為允許狀態

esb_disable_ltup 上/左箭頭為禁止狀態

esb_disable_rtdn 下/右箭頭為禁止狀態

esb_disable_both 兩個箭頭都為禁止狀態

如果需要在滾動條位置被改變時得到通知,需要在父視窗中定義對訊息wm_vscroll/wm_hscroll的對映。方法為在父視窗類中過載afx_msg void onvscroll( uint nsbcode, uint npos, cscrollbar* pscrollbar )/afx_msg void onhscroll( uint nsbcode, uint npos, cscrollbar* pscrollbar ) 所使用的訊息對映巨集為:on_wm_vscroll( ),on_wm_hscroll( ),在對映巨集中不需要指明滾動條的id,因為所有滾動條的滾動訊息都由同樣的函式處理。在onhscroll/onvscroll的第三個引數會指明當前滾動條的指標。第乙個引數表示滾動條上發生的動作,可取以下值:

sb_top/sb_bottom 已滾動到頂/底部

sb_lineup/sb_linedown 向上/下滾動一行

sb_pagedown/sb_pageup 向上/下滾動一頁

sb_thumbposition/sb_thumbtrack 滾動條拖動到某一位置,引數npos指明當前位置(引數npos在其它的情況下是無效的)

sb_endscroll 滾動條拖動完成(使用者鬆開滑鼠)

Android14之控制項系列ScrollView

scrollview 滾屏檢視,也就是當螢幕容納不下scrollview中那麼多的控制項後,能使用滾屏來檢視內容 父類 framelayout。例項 注意 scrollview的滾屏為豎直滾屏,如果要想在水平方向滾屏,則需使用horizontalscrollview,使用方法跟scrollview一...

VC 控制項之IP位址設定

一 新建工程 二 編輯資源對話方塊 三 新增變數 函式 1 新增變數 2 新增函式 四 為新建函式新增 紅色部分 void cipeditdlg onshowbutton else else 五 編譯 六 執行 七 函式說明 1 cipaddressctrl setaddress函式宣告 void ...

VC 之Edit控制項自動換行

vc 中edit控制項中的文字換行標誌是 r n,而不是一般的 n。所以說,如果想在edit控制項中顯示兩行文字,可以使用如下方法 cstring str name r n pedit setwindowtext str 這樣就可以在edit空間中顯示兩行文字。前提是 該edit控制項必須設定為es...