6 第三组UI组件:按钮、单选框和复选框

6.1 按钮

按钮由CSkinButton类来代表,继承于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>

下面是CSkinButton类特有的XML属性和相关方法:

6.1.1设置鼠标移上去按钮垂直方向的偏移量

  • 通过XML属性控制如下:
MouseOverOffset="-1"
  • 通过C++程序代码调用方法控制如下:
void SetMouseOverOffset(LONG nOffset);

6.1.2设置鼠标按下时按钮垂直方向的偏移量

  • 通过XML属性控制如下:
PressDownOffset="1"
  • 通过C++程序代码调用方法控制如下:
void SetPressDownOffset(LONG nOffset);

6.2 单选框

单选框由CSkinRadioButton类来代表,继承于CSkinButton,支持CSkinButton的所有属性和方法。

单选框的父组件的父组件必须为CSkinRadioGroup或其子类,用来将单选框分组。选中组框中的一个单选框时,自动取消其他单选框的选中状态。通过给单选框设置不同的布局文件,可以得到各种形态的单选框。

单选框

布局文件如下:

<SkinDialog DefaultWidth="400" DefaultHeight="300" SysButton="CLOSE" Icon="128" Caption="IDS_CONTROL_SHOW5" Animation="SizeChange">
    <SkinRadioGroup LayoutWidth="200" LayoutHeight="60" AlignParentLeft="50" AlignParentTop="100">
        <SkinRelativeLayout LayoutWidth="FillParent" LayoutHeight="FillParent">
            <SkinRadioButton LayoutWidth="200" LayoutHeight="30" ChildText1="IDS_CONTROL_SHOW_TEXT10" Layout="RadioButton.xml" AlignParentTop="0"/>
            <SkinRadioButton LayoutWidth="200" LayoutHeight="30" ChildText2="IDS_CONTROL_SHOW_TEXT11" ChildImage1="Icon.png" Layout="RadioButtonWidthIcon.xml" AlignParentTop="30"/>
        </SkinRelativeLayout>
    </SkinRadioGroup>
</SkinDialog>

下面是CSkinRadioButton类特有的XML属性和相关方法:

6.2.1设置单选框是否选中

  • 通过XML属性控制如下:
Checked="true"
  • 通过C++程序代码调用方法控制如下:
virtual void SetChecked(BOOL bChecked);

6.2.2设置单选框绑定的视图

通过给复选框设置不同的布局文件,可以得到不同形态的单选框。例如:通常使用单选框来实现Tab控件。
单选框被选中时,绑定的视图同时显示;单选框取消选中时,绑定的视图同时隐藏。

  • 通过XML属性控制如下:
BindView="1000"
  • 通过C++程序代码调用方法控制如下:
virtual void SetBindView(LONG nBindView);

6.3 复选框

复选框由CSkinCheckBox类来代表,继承于CSkinButton,支持CSkinButton的所有属性和方法。通过给复选框设置不同的布局文件,可以得到各种形态的复选框。

复选框

布局文件如下:

<SkinDialog DefaultWidth="400" DefaultHeight="300" SysButton="CLOSE" Icon="128" Caption="IDS_CONTROL_SHOW4" Animation="SizeChange">
    <SkinCheckBox LayoutWidth="200" LayoutHeight="30" ChildText1="IDS_CONTROL_SHOW_TEXT8" Layout="CheckBox.xml" AlignParentLeft="50" AlignParentTop="75"/>
    <SkinCheckBox LayoutWidth="200" LayoutHeight="30" ChildText2="IDS_CONTROL_SHOW_TEXT9" ChildImage1="Icon.png" Layout="CheckBoxWidthIcon.xml" AlignParentLeft="50" AlignParentTop="175"/>
</SkinDialog>

下面是CSkinCheckBox类特有的XML属性和相关方法:

6.3.1设置复选框是否选中

  • 通过XML属性控制如下:
Checked="true"
  • 通过C++程序代码调用方法控制如下:
virtual void SetChecked(BOOL bChecked);

6.3.2设置复选框的选中状态

复选框的选中状态有:完全选中状态、部分选中状态和未选中状态。

  • 通过C++程序代码调用方法控制如下:
virtual void SetCheckedState(CheckState state);
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,445评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,889评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,047评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,760评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,745评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,638评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,011评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,669评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,923评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,655评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,740评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,406评论 4 320
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,995评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,961评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,197评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,023评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,483评论 2 342

推荐阅读更多精彩内容

  • 官方网站:http://www.skinui.cn 下载地址:http://pan.baidu.com/s/1sl...
    吴忠亮阅读 1,564评论 0 2
  • 1、窗体 1、常用属性 (1)Name属性:用来获取或设置窗体的名称,在应用程序中可通过Name属性来引用窗体。 ...
    Moment__格调阅读 4,480评论 0 11
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,594评论 18 139
  • 学生时代的暗恋多美好,窗前门后的偶遇,偷偷叠的纸心,压在书本下的卡片,偶尔被关注的欣喜。 时光过去,你可能记不...
    怪叔叔々阅读 180评论 3 2
  • 在用nginx架设了文件服务器之后,这种形式仅仅只能用来下载,不能提供上传。如果想上传一个大文件到服务器上,目标是...
    anxiaozhu阅读 2,349评论 0 2