SkinUI5.0官方文档

SkinUI5.0官方文档


选择框

<p>选择框CComboBox,继承于CFlexLayout,支持CFlexLayout的所有属性和方法。CComboBox通常由编辑框和按钮组合而成,并支持CEditView的所有属性。</p> <h2>1 属性和相关方法</h2> <h4>1.1 设置可选项</h4> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">Content="IDS_MALE,IDS_FEMALE" Content="IDS_MALE:male,IDS_FEMALE:female"</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">LONG AddContent(const String&amp; strText, const String&amp; strValue = String());</code></pre></li> </ul> <h4>1.2 设置当前选中</h4> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">CurSel="1"</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">void SetCurSel(LONG nCurSel);</code></pre></li> </ul> <h4>1.3 设置列表最大高度</h4> <ul> <li>通过XML属性控制如下: <pre><code class="language-xml">ListMaxHeight="100"</code></pre></li> <li>通过C++程序代码调用方法控制如下: <pre><code class="language-c">void SetListMaxHeight(LONG nMaxHeight);</code></pre></li> </ul> <h2>2 消息处理</h2> <h4>2.1 WM_COMBOBOX_CHANGE</h4> <p>下拉列表框选中项发生变化时,会给所在窗口发送自定义消息WM_COMBOBOX_CHANGE。</p> <p>参考下面的示例代码:</p> <pre><code class="language-cpp">void CComboBar::Notify(CView* pView) { LONG nNewSel = pView-&gt;GetId(); if(pView &amp;&amp; m_pComboBox &amp;&amp; m_pComboBox-&gt;GetCurSel() != nNewSel) { m_pComboBox-&gt;SetCurSel(nNewSel); GetOwner()-&gt;SendMessage(WM_COMBOBOX_CHANGE, m_pComboBox-&gt;GetId(), reinterpret_cast&lt;LPARAM&gt;(m_pComboBox)); } PostMessage(WM_CLOSE); }</code></pre> <h2>请看下面的示例</h2> <h4>效果图</h4> <p><img src="http://www.skinui.cn/doc/img/5.0/3/ComboBox.png" alt="下拉列表框" /></p> <h4>普通选择框</h4> <pre><code class="language-xml">&lt;ComboBox Width="200" Height="30" Layout="ComboBox.xml" Background="Edit.png" ReadOnly="true" Tips="请选择" Content="男,女" AlignParentLeft="0" AlignParentVertCenter="0"/&gt;</code></pre> <h4>Text-Value选择框</h4> <pre><code class="language-xml">&lt;ComboBox Width="200" Height="30" Layout="ComboBox.xml" Background="Edit.png" ReadOnly="true" Tips="请选择" Content="男:male,女:female" AlignParentLeft="0" AlignParentVertCenter="0"/&gt;</code></pre> <h4>定制化选择框</h4> <pre><code class="language-xml">&lt;GenderComboBox Width="200" Height="30" Layout="ComboBox.xml" Background="Edit.png" ReadOnly="true" Tips="请选择" Content="男:male,女:female" AlignParentLeft="0" AlignParentVertCenter="0"/&gt;</code></pre> <h4>可响应命令消息选择框</h4> <pre><code class="language-xml">&lt;AccountComboBox Width="200" Height="30" Layout="ComboBox.xml" Background="Edit.png" ReadOnly="true" Tips="请选择" Content="账号1:account1,账号2:account2,账号3:account3,账号4:account4,账号5:account5,账号6:account6,账号7:account7,账号8:account8,账号9:account9" AlignParentLeft="0" AlignParentVertCenter="0"/&gt;</code></pre> <h4>h文件</h4> <pre><code class="language-cpp">#pragma once class CDemoComboBoxLayout : public CScrollLayout { public: CDemoComboBoxLayout(CView* pParent); public: virtual void OnBuildFinish(); protected: void OnComboBoxChange(LONG nId, CComboBox* pComboBox, BOOL&amp; bHandle); SKINUI_DECLARE_MESSAGE_MAP() SKINUI_DECLARE_DYNCREATE(CDemoComboBoxLayout, CScrollLayout) };</code></pre> <h4>cpp文件</h4> <pre><code class="language-cpp">#include &lt;stdafx.h&gt; #include "DemoComboBoxLayout.h" SKINUI_BEGIN_MESSAGE_MAP(CDemoComboBoxLayout, CScrollLayout) ON_SKINUI_WM_COMBOBOX_CHANGE() SKINUI_END_MESSAGE_MAP() CDemoComboBoxLayout::CDemoComboBoxLayout(CView* pParent) : CScrollLayout(pParent) { } void CDemoComboBoxLayout::OnBuildFinish() { CScrollLayout::OnBuildFinish(); } void CDemoComboBoxLayout::OnComboBoxChange(LONG nId, CComboBox* pComboBox, BOOL&amp; bHandle) { bHandle = TRUE; GetOwner()-&gt;Toast(_T("Text = ") + pComboBox-&gt;GetText() + _T(",Value = ") + pComboBox-&gt;GetValue()); }</code></pre>

页面列表

ITEM_HTML