5 第二組UI組件:文本、超鏈、線條和圖片框

5.1 文本

文本由CSkinTextView類來代表,繼承于CSkinView,支持CSkinView的所有屬性和方法。

文本

布局文件如下:

<SkinDialog DefaultWidth="400" DefaultHeight="300" SysButton="CLOSE" Icon="128" Caption="IDS_CONTROL_SHOW1" Animation="SizeChange" EscCloseDialog="true">
    <SkinTextView Id="1" FontColor="ID_COLOR_TEXT" Text="IDS_CONTROL_SHOW_TEXT1" AlignParentLeft="30" AlignParentRight="30" AlignParentTop="45" LayoutHeight="24" FontStyle="ID_FONT_NORMAL"/>
    <SkinTextView Id="1" FontColor="ID_COLOR_TEXT" Text="IDS_CONTROL_SHOW_TEXT2" AlignParentLeft="30" AlignParentTop="100" AlignParentRight="30" LayoutHeight="72" FontStyle="ID_FONT_NORMAL" MultiLine="true"/>
    <SkinTextView Id="1" FontColor="ID_COLOR_RED" Text="IDS_CONTROL_SHOW_TEXT3" AlignParentLeft="30" AlignParentTop="200" LayoutHeight="72" LayoutWidth="275" FontStyle="ID_FONT_NORMAL" MultiLine="true"/>
</SkinDialog>

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

5.1.1設置文本是單行還是多行

  • 通過XML屬性控制如下:
MultiLine="true"
  • 通過C++程序代碼調用方法控制如下:
void SetMultiLine(BOOL bMultiLine);

5.1.2設置文本顏色

  • 通過XML屬性控制如下:
FontColor="ID_COLOR_RED"
  • 通過C++程序代碼調用方法控制如下:
void SetFontColor(const tstring& strFontColor);

5.1.3設置文本字體

  • 通過XML屬性控制如下:
FontStyle="ID_FONT_NORMAL"
  • 通過C++程序代碼調用方法控制如下:
void SetFontStyle(const tstring& strFontStyle);

5.1.4設置文本水平對齊方式

  • 通過XML屬性控制如下:
HorzAlignment="Left"
  • 通過C++程序代碼調用方法控制如下:
void SetHorzAlignment(StringAlignment alignment);

5.1.5設置文本垂直對齊方式

  • 通過XML屬性控制如下:
VertAlignment="Center"
  • 通過C++程序代碼調用方法控制如下:
void SetVertAlignment(StringAlignment alignment);

5.1.6單行文本太長時,自動在結尾處加“...”

  • 通過XML屬性控制如下:
AutoLayout="true"
  • 通過C++程序代碼調用方法控制如下:
void SetAutoLayout(BOOL bAutoLayout);

5.2 超鏈

文本由CSkinHyperlink類來代表,繼承于CSkinTextView,支持CSkinTextView的所有屬性和方法。

超鏈

布局文件如下:

<SkinDialog DefaultWidth="400" DefaultHeight="300" SysButton="CLOSE" Icon="128" Caption="IDS_CONTROL_SHOW3" Animation="SizeChange">
    <SkinHyperlink LayoutWidth="WrapContent" LayoutHeight="30" Text="IDS_CONTROL_SHOW_TEXT4" AlignParentHorizontalCenter="0" AlignParentTop="50"/>
    <SkinHyperlink LayoutWidth="120" LayoutHeight="30" Text="IDS_CONTROL_SHOW_TEXT5" AlignParentHorizontalCenter="0" AlignParentTop="125"/>
    <SkinHyperlink LayoutWidth="WrapContent" LayoutHeight="30" Text="IDS_CONTROL_SHOW_TEXT6" URL="www.baidu.com" AlignParentHorizontalCenter="0" AlignParentTop="200"/>
</SkinDialog>

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

5.1.1設置超鏈激活狀態的字體

  • 通過XML屬性控制如下:
HotFontStyle="ID_FONT_HYPERLINK"
  • 通過C++程序代碼調用方法控制如下:
void SetHotFontStyle(const tstring& strFontStyle);

5.1.2設置超鏈激活狀態字體的顏色

  • 通過XML屬性控制如下:
HotFontColor="ID_COLOR_HYPERLINK"
  • 通過C++程序代碼調用方法控制如下:
void SetHotFontColor(const tstring& strFontColor);

5.1.2設置超鏈的鏈接URL

  • 通過XML屬性控制如下:
URL="www.baidu.com"
  • 通過C++程序代碼調用方法控制如下:
void SetUrl(const tstring& strUrl);

單擊超鏈時,如果超鏈是URL,則直接用系統默認瀏覽器打開這個URL;否則,給超鏈所在窗口發送WM_COMMAND消息。

5.3 線條

文本由CSkinLine類來代表,繼承于CSkinView,支持CSkinView的所有屬性和方法。

線條

布局文件如下:

<SkinDialog DefaultWidth="400" DefaultHeight="300" SysButton="CLOSE" Icon="128" Caption="IDS_CONTROL_SHOW16" Animation="SizeChange">
    <SkinLine LayoutHeight="1" AlignParentLeft="10" AlignParentRight="10" AlignParentTop="100" Color="ID_COLOR_DEFAULT12"/>
    <SkinLine LayoutHeight="1" AlignParentLeft="10" AlignParentRight="10" AlignParentTop="150" Color="ID_COLOR_DEFAULT12"/>
    <SkinLine LayoutHeight="1" AlignParentLeft="10" AlignParentRight="10" AlignParentTop="151" Color="ID_COLOR_DEFAULT12"/>
    <SkinLine LayoutHeight="1" AlignParentLeft="10" AlignParentRight="10" AlignParentTop="200" Color="ID_COLOR_DEFAULT12"/>
    <SkinLine LayoutHeight="1" AlignParentLeft="10" AlignParentRight="10" AlignParentTop="201" Color="ID_COLOR_DEFAULT12"/>
    <SkinLine LayoutHeight="1" AlignParentLeft="10" AlignParentRight="10" AlignParentTop="202" Color="ID_COLOR_DEFAULT12"/>
</SkinDialog>

下面是CSkinLine類常用的XML屬性和相關方法:

5.3.1設置線條風格

  • 通過XML屬性控制如下:
DashStyle="Solid"
  • 通過C++程序代碼調用方法控制如下:
void SetDashStyle(DashStyle dashStyle);

5.3.2設置線條顏色

  • 通過XML屬性控制如下:
Color="ID_COLOR_RED"
  • 通過C++程序代碼調用方法控制如下:
void SetColor(const tstring& strColor);

5.3.3設置顏色漸變線條開始顏色

  • 通過XML屬性控制如下:
StartColor="ID_COLOR_BLACK"
  • 通過C++程序代碼調用方法控制如下:
void SetStartColor(const tstring& strColor);

5.3.4設置顏色漸變線條結束顏色

  • 通過XML屬性控制如下:
EndColor="ID_COLOR_WHITE"
  • 通過C++程序代碼調用方法控制如下:
void SetEndColor(const tstring& strColor);

5.4 圖片框

圖片框分為顯示單幀圖片的普通圖片框和顯示多幀圖片的加強圖片框。圖片內容可以加載資源文件,也可以加載保存在硬盤任意位置的圖片。

5.4.1普通圖片框

普通圖片框由CSkinImageView類來代表,繼承于CSkinView,支持CSkinView的所有屬性和方法。
CSkinImageView可以顯示普通靜態圖片,也可以顯示Gif動畫圖片。

普通圖片

布局文件如下:

<SkinDialog DefaultWidth="400" DefaultHeight="300" SysButton="CLOSE" Icon="128" Caption="IDS_CONTROL_SHOW6" Animation="SizeChange">
    <SkinImageView LayoutWidth="WrapContent" LayoutHeight="WrapContent" Image="Image.png" AlignParentHorizontalCenter="0" AlignParentVerticalCenter="0"/>
</SkinDialog>
Gif動畫圖片

布局文件如下:

<SkinDialog DefaultWidth="400" DefaultHeight="300" SysButton="CLOSE" Icon="128" Caption="IDS_CONTROL_SHOW7" Animation="SizeChange">
    <SkinImageView Id="1" LayoutWidth="WrapContent" LayoutHeight="WrapContent" Image="Image.gif" AutoPlay="true" AlignParentHorizontalCenter="0" AlignParentVerticalCenter="0"/>
</SkinDialog>

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

5.4.1.1設置圖片框顯示的Gif動畫是否需要自動播放

  • 通過XML屬性控制如下:
AutoPlay="true"
  • 通過C++程序代碼調用方法控制如下:
void SetAutoPlay(BOOL bAutoPlay);

如果圖片框設置為自動播放,則Gif動畫會在初始化完成之后自動播放。

5.4.1.2設置圖片框是否可以點擊

  • 通過XML屬性控制如下:
ClickAble="true"
  • 通過C++程序代碼調用方法控制如下:
void SetClickAble(BOOL bClickAble);

如果圖片框設置為可點擊,單擊圖片框時,SkinUI會給圖片框所在窗口發送WM_COMMAND消息。

5.4.1.3設置圖片框顯示資源圖片

  • 通過XML屬性控制如下:
Image="Finish.png"
  • 通過C++程序代碼調用方法控制如下:
virtual void SetImage(const tstring& strImage);

5.4.1.4設置圖片框顯示保存在硬盤任意位置的圖片

  • 無法通過XML屬性控制
  • 通過C++程序代碼調用方法控制如下:
virtual void LoadImage(const tstring& strImage);

5.4.2加強圖片框

加強圖片框由CSkinImageViewEx類來代表,繼承于CSkinView,支持CSkinView的所有屬性和方法。
CSkinImageViewEx用來顯示將動畫的多幀從左到右依次排列的多幀動畫圖片資源。

加強圖片框

布局文件如下:

<SkinDialog DefaultWidth="400" DefaultHeight="300" SysButton="CLOSE" Icon="128" Caption="IDS_CONTROL_SHOW8" Animation="SizeChange">
    <SkinImageViewEx Id="1" LayoutWidth="WrapContent" LayoutHeight="WrapContent" Image="MultiImage.png" TotalFrame="17" AutoPlay="true" AlignParentHorizontalCenter="0" AlignParentVerticalCenter="0"/>
</SkinDialog>

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

5.3.2.1設置圖片框顯示的多幀動畫圖片是否需要自動播放

  • 通過XML屬性控制如下:
AutoPlay="true"
  • 通過C++程序代碼調用方法控制如下:
void SetAutoPlay(BOOL bAutoPlay);

如果圖片框設置為自動播放,則多幀動畫圖片會在初始化完成之后自動播放。

5.4.2.2設置圖片框是否可以點擊

  • 通過XML屬性控制如下:
ClickAble="true"
  • 通過C++程序代碼調用方法控制如下:
void SetClickAble(BOOL bClickAble);

如果圖片框設置為可點擊,單擊圖片框時,SkinUI會給圖片框所在窗口發送WM_COMMAND消息。

5.4.2.3設置圖片框顯示資源圖片

  • 通過XML屬性控制如下:
Image="Loading.png"
  • 通過C++程序代碼調用方法控制如下:
virtual void SetImage(const tstring& strImage);

5.4.2.4設置圖片播放下一幀的時間間隔

  • 通過XML屬性控制如下:
Elapse="50"
  • 通過C++程序代碼調用方法控制如下:
void SetElapse(LONG nInterval);
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 230,563評論 6 544
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,694評論 3 429
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事?!?“怎么了?”我有些...
    開封第一講書人閱讀 178,672評論 0 383
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,965評論 1 318
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,690評論 6 413
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 56,019評論 1 329
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 44,013評論 3 449
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 43,188評論 0 290
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,718評論 1 336
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,438評論 3 360
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,667評論 1 374
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 39,149評論 5 365
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,845評論 3 351
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,252評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,590評論 1 295
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,384評論 3 400
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,635評論 2 380

推薦閱讀更多精彩內容

  • 官方網站:http://www.skinui.cn 下載地址:http://pan.baidu.com/s/1sl...
    吳忠亮閱讀 1,610評論 0 2
  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,830評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,765評論 25 708
  • 很久之前就做過淘寶客,那時的空閑時間比較多,每天花2小時打理一下網站,每個月都還是有不錯的收入,后來因為工作的原因...
    9SiR閱讀 1,434評論 5 3
  • 在一個頁面可能會有請求多個接口的情況,而接口的請求是異步的,為了能保證一個頁面數據的同步處理,針對多個異步線程的處...
    c_f閱讀 2,872評論 0 1