SkinUI入门教程

SkinUI入门教程


1.4 视图

<p>所有的视图都提供了两种方式来控制视图的行为。</p> <ul> <li>在XML布局中通过XML属性进行控制</li> <li>在C++程序代码中通过调用方法进行控制</li> </ul> <p>SkinUI推荐使用XML布局文件,而不是C++代码来定义用户界面。实际上,不管使用哪种方式,它们控制SkinUI用户界面行为的本质是一样的。大部分时候,控制UI组件的XML属性都有对应的方法。</p> <p>CSkinView是所有视图的基类,包含的XML属性和方法所有视图都可以使用。 下面是CSkinView类常用的XML属性和相关方法:</p> <h3>1 设置组件 Id</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">Id=&amp;quot;1001&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetId(LONG nId);</code></pre></li> </ul> <h3>2 设置组件文本</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">Text=&amp;quot;IDS_OK&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetText(const tstring&amp;amp; strText);</code></pre></li> </ul> <h3>3 设置组件简单提示信息</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">Tips=&amp;quot;IDS_CLOSE_TIPS&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetTips(const tstring&amp;amp; strTips);</code></pre></li> </ul> <h3>4 设置组件复杂提示信息</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">SkinTips=&amp;quot;SkinTips.xml&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetSkinTipsLayout(const tstring&amp;amp; strLayout);</code></pre></li> </ul> <h3>5 设置组件复杂提示信息的偏移量</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">SkinTipsOffset=&amp;quot;-10,-10&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetSkinTipsOffset(const CPoint&amp;amp; point);</code></pre></li> </ul> <h3>6 设置组件是否可见</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">Visible=&amp;quot;false&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetVisible(BOOL bVisible);</code></pre></li> </ul> <h3>7 设置组件是否可用</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">Enable=&amp;quot;false&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetEnable(BOOL bEnabled);</code></pre></li> </ul> <h3>8 设置组件是否获得焦点</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">Focused=&amp;quot;true&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetFocus(BOOL bFocus);</code></pre></li> </ul> <h3>9 设置组件前景图像</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">Image=&amp;quot;CheckBox.png&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetImage(const tstring&amp;amp; strImage);</code></pre></li> </ul> <h3>10 设置组件前景颜色</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">Color=&amp;quot;ID_COLOR_RED&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetColor(const tstring&amp;amp; strColor);</code></pre></li> </ul> <h3>11 设置组件边框颜色</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">Border=&amp;quot;ID_COLOR_BORDER&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetBorderColor(const tstring&amp;amp; strColor);</code></pre></li> </ul> <h3>12 设置组件背景图片</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">BkgImage=&amp;quot;bkg.png&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetBkgImage(const tstring&amp;amp; strImage);</code></pre></li> </ul> <h3>13 设置组件背景颜色</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">BkgColor=&amp;quot;ID_COLOR_BKG&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetBkgColor(const tstring&amp;amp; strColor);</code></pre></li> </ul> <h3>14 设置组件菜单</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">Menu=&amp;quot;EditMenu.xml&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetMenu(const tstring&amp;amp; strMenu);</code></pre></li> </ul> <h3>15 设置组件最大宽度</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">MaxWidth=&amp;quot;800&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetMaxWidth(LONG nMaxWidth);</code></pre></li> </ul> <h3>16 设置组件最大高度</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">MaxHeight=&amp;quot;600&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetMaxHeight(LONG nMaxHeight);</code></pre></li> </ul> <h3>19 设置组件模式</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">Mode=&amp;quot;1&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetMode(LONG nMode);</code></pre></li> </ul> <h3>20 设置组件接受的拖放类型</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">Drag=&amp;quot;File&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetDrag(const vector&amp;lt;UINT&amp;gt;&amp;amp; vecDrag);</code></pre></li> </ul> <h3>21 设置组件是否允许被拖动</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">AllowDrag=&amp;quot;true&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetAllowDrag(BOOL bAllow);</code></pre></li> </ul> <h3>22 设置组件外边距</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">Margin=&amp;quot;5,5,5,5&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetLayoutMargin(LayoutMargin layoutMargin);</code></pre></li> </ul> <h3>23 设置组件光标</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">Cursor=&amp;quot;32513&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetCursor(LONG nCursor);</code></pre></li> </ul> <h3>24 设置组件重绘时是否需要重绘整个窗口</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">RedrawOwner=&amp;quot;true&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetRedrawOwner(BOOL bRedrawOwner);</code></pre></li> </ul> <h3>25 设置组件重绘时是否需要重绘父组件</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">RedrawParent=&amp;quot;true&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetRedrawParent(BOOL bRedrawParent);</code></pre></li> </ul> <h3>26设置该组件的子组件重绘时是否需要重绘该组件</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">RedrawAllChild=&amp;quot;true&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetRedrawAllChild(BOOL bRedrawAllChild);</code></pre></li> </ul> <h3>27 设置组件的布局XML文件</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">Layout=&amp;quot;Button.xml&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetLayout(const tstring&amp;amp; strLayout);</code></pre></li> </ul> <h3>28 设置组件布局宽度</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">LayoutWidth=&amp;quot;WrapContent&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetLayoutWidth(LONG nLayoutWidth);</code></pre></li> </ul> <h3>29 设置组件布局高度</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">LayoutHeight=&amp;quot;FillParent&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetLayoutHeight(LONG nLayoutHeight);</code></pre></li> </ul> <h3>30 设置组件相对于父组件的对齐方式</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">LayoutAlignment=&amp;quot;Left,Top&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetLayoutAlignment(LayoutAlignment layoutAlignment);</code></pre></li> </ul> <h3>31 设置组件右边距兄弟组件左边的距离</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">ToLeftOf=&amp;quot;1001,10&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetLayoutToLeftOf(LONG nId, LONG nOffset);</code></pre></li> </ul> <h3>32 设置组件下边距兄弟组件上边的距离</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">ToTopOf=&amp;quot;1001,10&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetLayoutToTopOf(LONG nId, LONG nOffset);</code></pre></li> </ul> <h3>33 设置组件左边距兄弟组件右边的距离</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">ToRightOf=&amp;quot;1001,10&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetLayoutToRightOf(LONG nId, LONG nOffset);</code></pre></li> </ul> <h3>34 设置组件上边距兄弟组件下边的距离</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">ToBottomOf=&amp;quot;1001,10&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetLayoutToBottomOf(LONG nId, LONG nOffset);</code></pre></li> </ul> <h3>35 设置组件左边距兄弟组件左边的距离</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">AlignLeftOf=&amp;quot;1001,10&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetLayoutAlignLeftOf(LONG nId, LONG nOffset);</code></pre></li> </ul> <h3>36 设置组件上边距兄弟组件上边的距离</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">AlignTopOf=&amp;quot;1001,10&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetLayoutAlignTopOf(LONG nId, LONG nOffset);</code></pre></li> </ul> <h3>37 设置组件右边距兄弟组件右边的距离</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">AlignRightOf=&amp;quot;1001,10&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetLayoutAlignRightOf(LONG nId, LONG nOffset);</code></pre></li> </ul> <h3>38 设置组件下边距兄弟组件下边的距离</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">AlignBottomOf=&amp;quot;1001,10&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetLayoutAlignBottomOf(LONG nId, LONG nOffset);</code></pre></li> </ul> <h3>39 设置组件左边距父组件左边的距离</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">AlignParentLeft=&amp;quot;1001,10&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetLayoutAlignParentLeft(LONG nOffset);</code></pre></li> </ul> <h3>40 设置组件上边距父组件上边的距离</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">AlignParentTop=&amp;quot;1001,10&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetLayoutAlignParentTop(LONG nOffset);</code></pre></li> </ul> <h3>41 设置组件右边距父组件右边的距离</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">AlignParentRight=&amp;quot;1001,10&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetLayoutAlignParentRight(LONG nOffset);</code></pre></li> </ul> <h3>42 设置组件下边距父组件下边的距离</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">AlignParentBottom=&amp;quot;1001,10&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetLayoutAlignParentBottom(LONG nOffset);</code></pre></li> </ul> <h3>43 设置组件中心与父组件中心水平方向的距离</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">AlignParentHorizontalCenter=&amp;quot;10&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetLayoutAlignParentHorizontalCenter(LONG nOffset);</code></pre></li> </ul> <h3>44 设置组件中心与父组件中心垂直方向的距离</h3> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">AlignParentVerticalCenter=&amp;quot;10&amp;quot;</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">virtual void SetLayoutAlignParentVerticalCenter(LONG nOffset);</code></pre></li> </ul>

页面列表

ITEM_HTML