1. 程式人生 > >SkinUI入門教程(七) 第四組UI元件:進度條、分割條、滾動條和滑塊

SkinUI入門教程(七) 第四組UI元件:進度條、分割條、滾動條和滑塊

7.1 進度條

進度條由CSkinProgress類來代表,繼承於CSkinView,支援CSkinView的所有屬性和方法。
通過給進度條設定不同的圖片資源,可以得到各種形態的進度條。


進度條效果圖

佈局檔案如下:

<SkinDialog DefaultWidth="400" DefaultHeight="300" SysButton="CLOSE" Icon="128" Caption="IDS_CONTROL_SHOW13" Animation="SizeChange">
    <SkinProgress LayoutHeight="19" AlignParentLeft="10" AlignParentRight="10" AlignParentVerticalCenter="0" Range="100" Pos="50" Image="Progress.png"/>
</SkinDialog>

下面是CSkinProgress類特有的XML屬性和相關方法:

7.1.1設定進度條的最大進度

  • 通過XML屬性控制如下:
    Range="100"
  • 通過C++程式程式碼呼叫方法控制如下:
    void SetRange(uint64 nRange);

7.1.2設定進度條的當前進度

  • 通過XML屬性控制如下:
    Pos="1"
  • 通過C++程式程式碼呼叫方法控制如下:
    void SetPos(uint64 nPos);

7.2 分割條

分割條由CSkinSplitter類來代表,繼承於CSkinView,支援CSkinView的所有屬性和方法。
通過給分割條設定不同的圖片資源,可以得到各種形態的進度條。


分隔條效果圖

佈局檔案如下:

<SkinDialog DefaultWidth="400" DefaultHeight="300" SysButton="CLOSE" Icon="128" Caption="IDS_CONTROL_SHOW14" Animation="SizeChange">
    <SkinSplitter LayoutHeight="3" AlignParentLeft="10" AlignParentRight="10" AlignParentVerticalCenter="0" Min="50" Max="250" Image="VSplitter.png"/>
</SkinDialog>

下面是CSkinSplitter類特有的XML屬性和相關方法:

7.2.1設定分割條是否為水平分隔條

  • 通過XML屬性控制如下:
    HorzSplitter="true"
  • 通過C++程式程式碼呼叫方法控制如下:
    void SetHorzSplitter(BOOL bHorzSplitter);

7.2.2設定分隔條的移動範圍

  • 通過XML屬性控制如下:
    Min="100" Max="1000"
  • 通過C++程式程式碼呼叫方法控制如下:
    void SetMoveRange(LONG nMin, LONG nMax);

7.3 滾動條

滾動條由CSkinScrollBar類來代表,繼承於CSkinView,支援CSkinView的所有屬性和方法。通過給滾動條設定不同的佈局檔案,可以得到不同形態的滾蛋條。例如:可以設定滾動條只有滾動滑塊而沒有滾動箭頭。

  • 滾動條可以單獨存在
    <SkinScrollBarId="1125" LayoutHeight="21" AlignParentLeft="15" AlignParentRight="15" AlignParentVerticalCenter="0" Layout="VScrollBar.xml"/>
  • 滾動條也可以搭配列表框:
    <SkinListView AlignParentLeft="1" AlignParentRight="1" AlignParentTop="1" AlignParentBottom="1" VScrollBar="VScrollBar.xml">
  • 滾動條也可以搭配編輯框:

    <SkinEditView Image="Edit.png" MultiLine="true" AlignParentLeft="8" AlignParentRight="8" AlignParentTop="38" AlignParentBottom="8" VScrollBar="VScrollBar.xml"/>
  • 垂直滾動條佈局檔案VScrollBar.xml如下:

    <SkinVerticalLayout LayoutWidth="FillParent" LayoutHeight="FillParent">
      <ScrollSlider Id="100001" LayoutWidth="FillParent" LayoutHeight="FillParent" Image="VScrollSlider.png">
          <ScrollThumb Id="100002" Image="VScrollThumb.png"/>
      </ScrollSlider>
    </SkinVerticalLayout>

滾動條單獨使用
滾動條搭配編輯框效果圖
滾動條搭配列表框效果圖

下面是CSkinScrollBar類特有的XML屬性和相關方法:

7.3.1設定滾動條的滾動檢視

  • 通過C++程式程式碼呼叫方法控制如下:
    void SetScrollView(CSkinScrollView* pView);

7.3.2設定滾動條資訊

  • 通過C++程式程式碼呼叫方法控制如下:
    void SetScrollInfo(const ScrollInfo& info);

7.3.2設定滾動條滑塊位置

  • 通過C++程式程式碼呼叫方法控制如下:
    void SetScrollPos(LONG nPos);

7.4 滑塊

滑塊由CSkinSlider類來代表,繼承於CSkinView,支援CSkinView的所有屬性和方法。
通過給滑塊設定不同的圖片資源,可以得到各種形態的進度條。


滑塊效果圖

佈局檔案如下:

<SkinDialog DefaultWidth="400" DefaultHeight="300" SysButton="CLOSE" Icon="128" Caption="IDS_CONTROL_SHOW17" Animation="SizeChange">
    <SkinSlider Id="1125" LayoutHeight="21" AlignParentLeft="15" AlignParentRight="15" AlignParentVerticalCenter="0" Range="100" Pos="50" Image="AlphaSliderBkg.png" ThumbImage="AlphaSliderThumb.png"/>
</SkinDialog>

下面是CSkinSlider類特有的XML屬性和相關方法:

7.4.1設定滑塊的移動範圍

  • 通過XML屬性控制如下:
    Range="100"
  • 通過C++程式程式碼呼叫方法控制如下:
    void SetRange(LONG nRange);

7.4.2設定滑塊的當前位置

  • 通過XML屬性控制如下:
    Pos="1"
  • 通過C++程式程式碼呼叫方法控制如下:
    void SetPos(LONG nPos);

7.4.3設定滑塊的影象

  • 通過XML屬性控制如下:
    ThumbImage="SliderThumb.png"
  • 通過C++程式程式碼呼叫方法控制如下:
    void SetThumbImage(uint64 nPos);