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

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

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

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

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

            常用鏈接

            留言簿(6)

            隨筆分類(35)

            隨筆檔案(51)

            文章分類(3)

            文章檔案(3)

            相冊

            我的鏈接

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            久久r热这里有精品视频| 久久亚洲国产精品123区| 色8激情欧美成人久久综合电| 久久66热人妻偷产精品9| 日产精品99久久久久久| av色综合久久天堂av色综合在 | 久久综合五月丁香久久激情| 久久这里只有精品久久| 狠狠色婷婷综合天天久久丁香 | 久久精品无码一区二区无码| 97久久婷婷五月综合色d啪蜜芽| 久久夜色精品国产噜噜亚洲a| 人妻丰满?V无码久久不卡| 色婷婷狠狠久久综合五月| 国产成人综合久久精品红| 国产美女亚洲精品久久久综合| 久久久亚洲裙底偷窥综合| 久久久亚洲欧洲日产国码aⅴ | 99精品国产免费久久久久久下载 | 亚洲AV无码久久精品蜜桃| 久久久久高潮毛片免费全部播放 | a级毛片无码兔费真人久久| 久久久无码精品午夜| 久久午夜免费视频| 99久久99久久精品免费看蜜桃| 久久精品国产亚洲一区二区| 久久久久亚洲AV无码专区网站| 人妻无码精品久久亚瑟影视 | 久久无码专区国产精品发布| 久久一日本道色综合久久| 夜夜亚洲天天久久| 久久亚洲国产精品成人AV秋霞| 国产成人综合久久综合| 要久久爱在线免费观看| 91久久精品国产免费直播| 久久精品国产亚洲AV忘忧草18 | 五月丁香综合激情六月久久| 国产精品成人久久久久三级午夜电影 | 国产精品视频久久| 亚洲精品无码久久千人斩| 久久国产精品免费一区|