• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            幽幽
             
            posts - 51,  comments - 28,  trackbacks - 0

            滾動控件(ScrollBar)


              滾動條(ScrollBar)主要用來從某一預定義值范圍內快速有效地進行選擇。滾動條分垂直滾動條和水平滾動條兩種。在滾動條內有一個滾動框,用來表示當前的值。用鼠標單擊滾動條,可以使滾動框移動一頁,鼠標單擊滾動條兩端的剪頭可以使滾動框移動一行,也可以直接拖動滾動框。許多窗口控件如列表框和組合框等都帶有滾動條子窗口。Win32的滾動條支持比例滾動框,即用滾動框的大小來反映頁相對于整個范圍的大小。
              當CreateWindowEx創建滾動條時,其風格常數中帶SBS_VERT為水平滾動條,不帶SBS_VERT或帶SBS_HORZ為垂直滾動條。
              創建控件時應初始化滾動條的各種參數。
              應用程序可以通過調用SendMessage向控件發送如下消息來設定控件各種參數。
            uMsg wParam lParam 說明
            SBM_ENABLE_ARROWS ESB_DISABLE_BOTH 0 禁止雙向滾動剪頭
            ESB_DISABLE_DOWN 0 禁止向下滾動剪頭
            ESB_DISABLE_LTUP 0 禁止向上和向左滾動剪頭
            ESB_DISABLE_LEFT 0 禁止向左滾動剪頭
            ESB_DISABLE_RTDN 0 禁止向下和向右滾動剪頭
            ESB_DISABLE_UP 0 禁止向上滾動剪頭
            ESB_ENABLE_BOTH 0 允許雙向滾動剪頭(撤消各種禁止)
            SBM_SETPOS 指定位置 TRUE 設置滾動框位置,并重繪控件
            FALSE 設置滾動框位置,不重繪控件
            SBM_SETRANGE 最小值 最大值 設置滾動框位置的變化范圍
            SBM_SETRANGEREDRAW 最小值 最大值 設置滾動框位置的變化范圍,并重繪控件
            SBM_SETSCROLLINFO TRUE或FALSE SCROLLINFO結構指針 本消息通過一個SCROLLINFO結構來同時指定控件的多種參數,具體指定哪些參數由結構中的fMask成員確定。wParam指定是否重繪控件,詳見“SCROLLINFO結構”
              當用戶在滾動條控件上進行各種操作時,其父窗口將收到WM_HSCROLL或WM_VSCROLL通知消息,同時wParam的低16位帶有如下表的消息代碼(nScrollCode),wParam的高16位帶滾動框的指定位置(nPos),該值在消息代碼等于SB_THUMBPOSITION或SB_THUMBTRACK時才有效。lParam帶控件句柄(hwndScrollBar)。
              應用程序可以根據消息代碼做相應的操作,重新設置滾動框位置,控件本身是不會改變滾動框位置的。
            消息代碼 動作 響應
            SB_LINEUP
            SB_LINELEFT
            用戶點擊了向上(左)剪頭 滾動框位置減一,客戶窗口向上(左)滾動一行。
            注:這兩個代碼數值相等,因此可以混用,下同。
            SB_LINEDOWN
            SB_LINERIGHT
            用戶點擊了向下(右)剪頭 滾動框位置加一,客戶窗口向下(右)滾動一行。
            SB_PAGEUP
            SB_PAGELEFT
            用戶點擊了滾動框以上(左)剪桿 滾動框位置減去一個大單位,客戶窗口向上(左)滾動一頁。
            SB_PAGEDOWN
            SB_PAGERIGHT
            用戶點擊了滾動框以下(右)剪桿 滾動框位置加上一個大單位,客戶窗口向下(右)滾動一頁。
            SB_THUMBPOSITION 用戶拖動并釋放滾動框到指定位置 設定滾動框到指定位置。客戶窗口滾動到指定位置。
            SB_THUMBTRACK 用戶正在拖動滾動框 設定滾動框到指定位置。客戶窗口滾動到指定位置。如果應用程序需要快速瀏覽窗口,可以響應本消息重繪窗口,如果不需要快速瀏覽,可以等待收到SB_THUMBPOSITION消息時重繪窗口。
            SB_ENDSCROLL 用戶釋放按下剪頭或剪桿的鼠標 無須做任何響應
              應用程序可以通過調用SendMessage向控件發送如下消息來取得當前控件各種參數。
            uMsg wParam lParam 說明
            SBM_GETPOS 0 0 返回滾動框當前位置。
            SBM_GETRANGE 最小值地址指針 最大值地址指針 在指定地址中填入32位的滾動框位置的變化范圍
            SBM_GETSCROLLINFO 0 SCROLLINFO結構指針 在一個SCROLLINFO結構中返回控件的多種參數,必須事先設定結構的fMask成員來確定具體要取得哪些參數。詳見“SCROLLINFO結構”
              當控件需要重畫時向每父窗口發送WM_CTLCOLORSCROLLBAR消息,同時在wParam中帶控件的設備場景句柄(hDC),lParam中帶控件句柄。如果應用程序響應這個消息并返回一個畫刷(brush)句柄,控件將根據這個句柄繪制背景色。

            SCROLLINFO結構:
            SCROLLINFO STRUCT
                        cbSize        DWORD      ?
                        fMask         DWORD      ?
                        nMin          DWORD      ?
                        nMax          DWORD      ?
                        nPage         DWORD      ?
                        nPos          DWORD      ?
                        nTrackPos     DWORD      ?
                        SCROLLINFO ENDS
            成員說明:
              cbSize: SCROLLINFO結構長度字節數,該值在設置和查詢參數時都必須填寫。
              fMask: 指定結構中的哪些成員是有效,該值共有如下5種選擇,可以選擇多種用“OR”組合起來,該值在設置和查詢參數時都必須填寫。
                SIF_ALL      :整個結構都有效
                SIF_DISABLENOSCROLL:該值僅在設定參數時使用,視控件參數設定的需要來對本結構的成員進行取舍。
                SIF_PAGE      :nPage成員有效
                SIF_POS      :nPos成員有效
                SIF_RANGE     :nMin和nMax成員有效
              nMin:滾動范圍最小值
              nMax:滾動范圍最大值
              nPage:頁尺寸,用來確定比例滾動框的大小
              nPos:滾動框的位置
              nTrackPos:拖動時滾動框的位置,該參數只能查詢,不能設置。
             

            posted on 2008-07-21 09:57 幽幽 閱讀(1756) 評論(3)  編輯 收藏 引用 所屬分類: Windows

            FeedBack:
            # re: 滾動控件(ScrollBar)
            2008-07-21 13:23 | foxtail
            總之GUI開發總是不那么優雅  回復  更多評論
              
            # re: 滾動控件(ScrollBar)
            2008-07-22 03:11 | 幽幽
            @foxtail
            何謂"優雅"?  回復  更多評論
              
            # re: 滾動控件(ScrollBar)
            2008-07-22 07:53 | foxtail
            優雅就是簡單的邏輯
            應該說GUI應該存在一種語言,專門描述界面
            而不是搞在程序里,程序應該只處理數據或者業務。而界面應該獨立出來  回復  更多評論
              

            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            常用鏈接

            留言簿(6)

            隨筆分類(35)

            隨筆檔案(51)

            文章分類(3)

            文章檔案(3)

            相冊

            我的鏈接

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            久久久久亚洲AV成人网人人网站 | 狠狠色丁香婷婷久久综合五月| 午夜精品久久久久久| 精品久久久久久久国产潘金莲 | 国产成人久久精品区一区二区| 久久国产精品久久久| 亚洲国产成人精品91久久久| 精品国产乱码久久久久久呢| 伊人丁香狠狠色综合久久| A级毛片无码久久精品免费| 91精品免费久久久久久久久| 无码国内精品久久综合88| 99久久精品国产综合一区| 国产美女亚洲精品久久久综合| 国内精品久久久久影院网站| 色妞色综合久久夜夜| 色欲综合久久躁天天躁| 久久99国产精品久久久| 亚洲va久久久噜噜噜久久男同| 久久久久人妻一区精品| 久久美女网站免费| 99999久久久久久亚洲| 亚洲综合日韩久久成人AV| 久久久久久国产精品无码下载 | 久久精品亚洲日本波多野结衣 | 99re久久精品国产首页2020| 人妻系列无码专区久久五月天| 国产高潮国产高潮久久久91 | 久久精品毛片免费观看| 久久WWW免费人成一看片| 一本一道久久a久久精品综合| 精品多毛少妇人妻AV免费久久| 久久天堂电影网| 国产高清国内精品福利99久久| 91精品国产高清久久久久久91| 中文字幕一区二区三区久久网站 | 久久无码AV一区二区三区| 亚洲欧洲中文日韩久久AV乱码| 区亚洲欧美一级久久精品亚洲精品成人网久久久久 | 国产高清国内精品福利99久久| 国产成人精品久久综合|