window程式設計之滾動條 老式滾動條

2022-08-10 10:09:22 字數 2299 閱讀 1979

顯示滾動條,只需要在createwindow的第三個引數中包括視窗樣式(ws)識別符號ws_vscroll(垂直捲動)和/或ws_hscroll(水平捲動)即可

這些捲動列通常放在視窗的右部和底部,伸展為顯示區域的整個長度或寬度。顯示區域不包含捲動列所佔據的空間。

但是有這些是遠遠不夠滴.

1.首先,滾動條是有範圍的.在內定情況下,滾動條的範圍是從0(頂部或左部)至100(底部或右部)。但是如果要改變,應該這麼做.

setscrollrange (hwnd, ibar, imin, imax, bredraw) ;

/*引數ibar為sb_vert或者sb_horz,

imin和imax分別是範圍的最小值和最大值。

如果想要windows根據新範圍重畫滾動條,則設定bredraw為true

*/

有個常識:捲動方塊的位置總是離散的整數值。如果你的範圍過於小的話,比如0-5,那麼整個滾動條只能定位五個位置。

2.我們可以手動設定新的滾動方塊的位置:

setscrollpos (hwnd, ibar, ipos, bredraw) ;

/*引數ipos是新位置,它必須在imin至imax的範圍內

*/

3.獲取滾動塊的位置和範圍可以使用getscrollrange和getscrollpos;

4.當程式內使用滾動條時,程式與windows共同負責維護滾動條以及更新捲動方塊的位置。

下面是windows對滾動條的處理:

以下是程式應該完成的工作:

在用滑鼠單擊滾動條或者拖動捲動方塊時,windows給視窗訊息處理程式傳送wm_vscroll(供上下移動)和wm_hscroll(供左右移動)訊息。

和所有的訊息一樣,wm_vscroll和wm_hscroll也帶有wparam和lparam(忽略)訊息引數。

wparam訊息引數被分為乙個低字組和乙個高字組。wparam的低字組是乙個數值,它指出了滑鼠對滾動條進行的操作。這個數值被看作乙個「通知碼」。通知碼的值由以sb開頭的識別符號定義

#define sb_lineup       0          //

點選上邊的箭頭產生

#define sb_lineleft 0 //

點選左邊的箭頭產生

#define sb_linedown 1//

點選下邊的箭頭產生

#define sb_lineright 1//

點選右邊的箭頭產生

#define sb_pageup 2 //

在垂直滾動條上面空白處且在滾動方塊上面點選產生

#define sb_pageleft 2//

在垂直滾動條上面空白處且在滾動方塊上面點選產生

#define sb_pagedown 3//

在垂直滾動條上面空白處且在滾動方塊下面點選產生

#define sb_pageright 3//

在垂直滾動條上面空白處且在滾動方塊下面點選產生

#define sb_thumbposition 4//

釋放滾動方塊產生

#define sb_thumbtrack 5//

點選滾動方塊拖著走產生

#define sb_top 6

#define sb_left 6

#define sb_bottom 7

#define sb_right 7

#define sb_endscroll 8//

釋放點選產生

新增有關sb_*通知碼的**如下:

case

wm_vscroll:

switch

(loword (wparam))

ivscrollpos = max (0, min (ivscrollpos, numlines - 1

)) ;

if (ivscrollpos !=getscrollpos (hwnd, sb_vert))

return

0 ;

invalidaterect這個函式是將wm_paint訊息排進訊息佇列裡面,不能做到及時重新整理,如果需要及時重新整理,可以在後面加上updatewindow這個函式. 

附加乙份實現滾動條的**(c++)

突然發現不能傳附件,orz......傳到git吧

2013-09-10.21:39:11

DIV滾動條設定新增 CSS滾動條顯示與滾動條隱藏

div滾動條設定 css滾動條顯示與滾動條隱藏 對div設定滾動條,設定其橫向滾動條和縱向滾動條樣式。所需css樣式為overflow y和overflow x來設定div盒子物件右側和底部滾動條效果。同時也可以使用css樣式設定html框架iframe的滾動條隱藏,接下來為大家介紹。overflo...

DIV滾動條設定新增 CSS滾動條顯示與滾動條隱藏

divcss5 a,divcss5 b divcss5 b css注釋說明 設定第二個盒子與第乙個盒子間距為10px,並設定了橫縱滾動條樣式 style head divcss5測試內容,歡迎來到divcss5學習div css技術。大家可以通 過divcss5主站上的所有免費css教程足可學會di...

windows程式設計 滾動條

include define numlines int sizeof sysmetrics sizeof sysmetrics 0 struct sysmetrics lresult callback wndproc hwnd,uint,wparam,lparam 視窗函式原型 int winapi...