SkinUI入门教程

SkinUI入门教程


6.3 侧边栏动画

<p>类【CSlideAnimationHost】提供侧边栏动画的能力。</p> <h2>相关方法</h2> <p>当需要显示侧边栏时,SkinUI调用类【CSlideAnimationHost】的以下方法:</p> <pre><code class="language-c">void Show();</code></pre> <p>当需要隐藏侧边栏时,SkinUI调用类【CSlideAnimationHost】的以下方法:</p> <pre><code class="language-c">void Close();</code></pre> <h2>请看下面的示例</h2> <h4>效果图</h4> <p><img src="http://www.skinui.cn/doc/img/6/6/1.png" alt="侧边栏动画1" /> <img src="http://www.skinui.cn/doc/img/6/6/2.png" alt="侧边栏动画2" /></p> <h4>布局文件</h4> <pre><code class="language-xml">&amp;lt;SkinDialog DefaultWidth=&amp;quot;500&amp;quot; DefaultHeight=&amp;quot;400&amp;quot; SysButton=&amp;quot;CLOSE&amp;quot; Icon=&amp;quot;128&amp;quot; Caption=&amp;quot;IDS_SLIDE_ANIMATION1&amp;quot; Animation=&amp;quot;SizeChange&amp;quot;&amp;gt; &amp;lt;SkinButton Id=&amp;quot;1000&amp;quot; LayoutWidth=&amp;quot;125&amp;quot; LayoutHeight=&amp;quot;30&amp;quot; ChildText1=&amp;quot;IDS_CLICK_ME&amp;quot; Image=&amp;quot;Button.png&amp;quot; Layout=&amp;quot;Button.xml&amp;quot; AlignParentLeft=&amp;quot;50&amp;quot; AlignParentVerticalCenter=&amp;quot;0&amp;quot; PressDownOffset=&amp;quot;1&amp;quot;/&amp;gt; &amp;lt;SlideAnimationHost Id=&amp;quot;2000&amp;quot; LayoutWidth=&amp;quot;300&amp;quot; AlignParentTop=&amp;quot;30&amp;quot; AlignParentBottom=&amp;quot;0&amp;quot; AlignParentRight=&amp;quot;0&amp;quot; BkgImage=&amp;quot;SlideShadow.png&amp;quot; Visible=&amp;quot;false&amp;quot;&amp;gt; &amp;lt;SkinSlideLayout Id=&amp;quot;2001&amp;quot; LayoutWidth=&amp;quot;FillParent&amp;quot; LayoutHeight=&amp;quot;FillParent&amp;quot; Color=&amp;quot;ID_COLOR_RED&amp;quot;&amp;gt; &amp;lt;/SkinSlideLayout&amp;gt; &amp;lt;/SlideAnimationHost&amp;gt; &amp;lt;/SkinDialog&amp;gt;</code></pre> <h4>h文件</h4> <pre><code class="language-c">#pragma once class CSlideAnimationDialog : public CSkinDialog { public: enum { IDC_BUTTON_TEST = 1000, IDC_LAYOUT_SLIDE_HOST = 2000, IDC_LAYOUT_SLIDE = 2001, }; public: CSlideAnimationDialog(const tstring&amp;amp; strXml); public: virtual void OnInitDialog(); virtual void HandleLButtonDown(CPoint point, BOOL&amp;amp; bHandle); protected: void OnBtnClickedTest(UINT uNotifyCode, int nID, CSkinView* pView); SKINUI_DECLARE_MESSAGE_MAP() };</code></pre> <h4>cpp文件</h4> <pre><code class="language-c">#include &amp;quot;stdafx.h&amp;quot; #include &amp;quot;SlideAnimationDialog.h&amp;quot; SKINUI_BEGIN_MESSAGE_MAP(CSlideAnimationDialog, CSkinDialog) ON_SKINUI_COMMAND(IDC_BUTTON_TEST, OnBtnClickedTest) SKINUI_END_MESSAGE_MAP() CSlideAnimationDialog::CSlideAnimationDialog(const tstring&amp;amp; strXml) : CSkinDialog(strXml) { } void CSlideAnimationDialog::OnInitDialog() { CSkinDialog::OnInitDialog(); } void CSlideAnimationDialog::HandleLButtonDown(CPoint point, BOOL&amp;amp; bHandle) { CSlideAnimationHost* pAnimationHost = static_cast&amp;lt;CSlideAnimationHost*&amp;gt;(GetChildById(IDC_LAYOUT_SLIDE_HOST)); if(pAnimationHost &amp;amp;&amp;amp; pAnimationHost-&amp;gt;GetState() == VS_NORMAL) { pAnimationHost-&amp;gt;Hide(); bHandle = TRUE; } else { CSkinDialog::HandleLButtonDown(point, bHandle); } } void CSlideAnimationDialog::OnBtnClickedTest(UINT uNotifyCode, int nID, CSkinView* pView) { CSlideAnimationHost* pAnimationHost = static_cast&amp;lt;CSlideAnimationHost*&amp;gt;(GetChildById(IDC_LAYOUT_SLIDE_HOST)); if(pAnimationHost) { CSkinSlideLayout* pSlideLayout = static_cast&amp;lt;CSkinSlideLayout*&amp;gt;(GetChildById(IDC_LAYOUT_SLIDE)); if (pSlideLayout) { pAnimationHost-&amp;gt;Show(pSlideLayout); } } }</code></pre>

页面列表

ITEM_HTML