3.14 日期控件
<p>日期控件由SkinDateView类来代表,继承于CSkinRelativeLayout,支持CSkinRelativeLayout的所有属性和方法。</p>
<h2>1 属性和相关方法:</h2>
<h4>1.1 设置日期</h4>
<ul>
<li>通过C++程序代码调用方法控制如下:
<pre><code class="language-c">void SetDate(LONG nYear, LONG nMonth, LONG nDay);</code></pre></li>
</ul>
<h4>1.2 获取日期</h4>
<ul>
<li>通过C++程序代码调用方法控制如下:
<pre><code class="language-c">void GetDate(LONG&amp; nYear, LONG&amp; nMonth, LONG&amp; nDay);</code></pre></li>
</ul>
<h2>请看下面的示例</h2>
<h4>效果图</h4>
<p><img src="http://www.skinui.cn/doc/img/3/14/1.png" alt="日期控件" /></p>
<h4>布局文件</h4>
<pre><code class="language-xml">&lt;SkinDialog DefaultWidth=&quot;400&quot; DefaultHeight=&quot;300&quot; SysButton=&quot;CLOSE&quot; Icon=&quot;128&quot; Caption=&quot;IDS_CONTROL_SHOW14&quot; Animation=&quot;SizeChange&quot;&gt;
&lt;SkinDateView Id=&quot;101&quot; LayoutWidth=&quot;200&quot; LayoutHeight=&quot;30&quot; Layout=&quot;DateView.xml&quot; Image=&quot;Edit.png&quot; AlignParentHorizontalCenter=&quot;0&quot; AlignParentVerticalCenter=&quot;-20&quot; /&gt;
&lt;SkinButton Id=&quot;102&quot; LayoutWidth=&quot;100&quot; LayoutHeight=&quot;30&quot; ChildText1=&quot;获取日期&quot; Image=&quot;Button.png&quot; Layout=&quot;Button.xml&quot; AlignParentHorizontalCenter=&quot;0&quot; AlignParentVerticalCenter=&quot;30&quot; /&gt;
&lt;/SkinDialog&gt;</code></pre>
<h4>h文件</h4>
<pre><code class="language-cpp">#pragma once
class CDateViewDialog : public CSkinDialog
{
public:
enum
{
IDC_DATEVIEW = 101,
IDC_BUTTON = 102,
};
public:
CDateViewDialog(const tstring&amp; strXml);
public:
virtual void OnInitDialog();
protected:
void OnBtnClickedGetDate(UINT uNotifyCode, int nID, CSkinView* pView);
SKINUI_DECLARE_MESSAGE_MAP()
private:
CSkinDateView* m_pDateView;
};</code></pre>
<h4>cpp文件</h4>
<pre><code class="language-cpp">#include &quot;stdafx.h&quot;
#include &quot;DateViewDialog.h&quot;
SKINUI_BEGIN_MESSAGE_MAP(CDateViewDialog, CSkinDialog)
ON_SKINUI_COMMAND(IDC_BUTTON, OnBtnClickedGetDate)
SKINUI_END_MESSAGE_MAP()
CDateViewDialog::CDateViewDialog(const tstring&amp; strXml)
: CSkinDialog(strXml)
, m_pDateView(NULL)
{
}
void CDateViewDialog::OnInitDialog()
{
CSkinDialog::OnInitDialog();
m_pDateView = static_cast&lt;CSkinDateView*&gt;(GetChildById(IDC_DATEVIEW));
if(m_pDateView)
{
m_pDateView-&gt;SetDate(2003, 7, 21);
}
}
void CDateViewDialog::OnBtnClickedGetDate(UINT uNotifyCode, int nID, CSkinView* pView)
{
if(m_pDateView)
{
LONG nYear = 0, nMonth = 0, nDay = 0;
m_pDateView-&gt;GetDate(nYear, nMonth, nDay);
MsgBox(SkinUI::StringFormat(_T(&quot;当前日期为:%d年%d月%d日&quot;), nYear, nMonth, nDay));
}
}</code></pre>