SkinUI5.0官方文档

SkinUI5.0官方文档


编辑框

<p>编辑框由CSkinEditView类来代表,分为单行编辑框和多行编辑框,继承于CSkinScrollView,支持CSkinScrollView的所有属性和方法。</p> <h2>属性和相关方法</h2> <h4>设置是否为富文本编辑框</h4> <ul> <li>通过XML属性控制如下:</li> </ul> <pre><code class="language-xml">RichEdit="true"</code></pre> <ul> <li>通过C++程序代码调用方法控制如下:</li> </ul> <pre><code class="language-c">void SetRichEdit(BOOL bRichEdit);</code></pre> <h4>设置是否为多行编辑框</h4> <ul> <li>通过XML属性控制如下:</li> </ul> <pre><code class="language-xml">MultiLine="true"</code></pre> <ul> <li>通过C++程序代码调用方法控制如下:</li> </ul> <pre><code class="language-c">void SetMultiLine(BOOL bMultiLine);</code></pre> <h4>设置是否为只读编辑框</h4> <ul> <li>通过XML属性控制如下:</li> </ul> <pre><code class="language-xml">ReadOnly="true"</code></pre> <ul> <li>通过C++程序代码调用方法控制如下:</li> </ul> <pre><code class="language-c">void SetReadOnly(BOOL bReadOnly);</code></pre> <h4>设置字符数限制</h4> <ul> <li>通过XML属性控制如下:</li> </ul> <pre><code class="language-xml">Limit="true"</code></pre> <ul> <li>通过C++程序代码调用方法控制如下:</li> </ul> <pre><code class="language-c">void SetLimit(LONG nLimit);</code></pre> <h4>设置是否自动大写</h4> <ul> <li>通过XML属性控制如下:</li> </ul> <pre><code class="language-xml">UpperCase="true"</code></pre> <ul> <li>通过C++程序代码调用方法控制如下:</li> </ul> <pre><code class="language-c">void SetUpperCase(BOOL bUpperCase);</code></pre> <h4>设置是否自动小写</h4> <ul> <li>通过XML属性控制如下:</li> </ul> <pre><code class="language-xml">LowerCase="true"</code></pre> <ul> <li>通过C++程序代码调用方法控制如下:</li> </ul> <pre><code class="language-c">void SetLowerCase(BOOL bLowerCase);</code></pre> <h4>设置是否帐号</h4> <ul> <li>通过XML属性控制如下:</li> </ul> <pre><code class="language-xml">Account="true"</code></pre> <ul> <li>通过C++程序代码调用方法控制如下:</li> </ul> <pre><code class="language-c">void SetAccount(BOOL bAccount);</code></pre> <h4>设置是否密码</h4> <ul> <li>通过XML属性控制如下:</li> </ul> <pre><code class="language-xml">Password="true"</code></pre> <ul> <li>通过C++程序代码调用方法控制如下:</li> </ul> <pre><code class="language-c">void SetPassword(BOOL bPassword);</code></pre> <h4>设置是否是英文名</h4> <ul> <li>通过XML属性控制如下:</li> </ul> <pre><code class="language-xml">EnglishName="true"</code></pre> <ul> <li>通过C++程序代码调用方法控制如下:</li> </ul> <pre><code class="language-c">void SetEnglishName(BOOL bEnglishName);</code></pre> <h4>设置是否仅允许输入字符</h4> <ul> <li>通过XML属性控制如下:</li> </ul> <pre><code class="language-xml">Letter="true"</code></pre> <ul> <li>通过C++程序代码调用方法控制如下:</li> </ul> <pre><code class="language-c">void SetLetter(BOOL bLetter);</code></pre> <h4>设置是否手机号码</h4> <ul> <li>通过XML属性控制如下:</li> </ul> <pre><code class="language-xml">Mobile="true"</code></pre> <ul> <li>通过C++程序代码调用方法控制如下:</li> </ul> <pre><code class="language-c">void SetMobile(BOOL bMobile);</code></pre> <h4>设置是否电话号码</h4> <ul> <li>通过XML属性控制如下:</li> </ul> <pre><code class="language-xml">Phone="true"</code></pre> <ul> <li>通过C++程序代码调用方法控制如下:</li> </ul> <pre><code class="language-c">void SetPhone(BOOL bPhone);</code></pre> <h4>设置是否是邮件地址</h4> <ul> <li>通过XML属性控制如下:</li> </ul> <pre><code class="language-xml">Email="true"</code></pre> <ul> <li>通过C++程序代码调用方法控制如下:</li> </ul> <pre><code class="language-c">void SetEmail(BOOL bEmail);</code></pre> <h4>设置文本</h4> <ul> <li>通过XML属性控制如下:</li> </ul> <pre><code class="language-xml">Text="IDS_TEST"</code></pre> <ul> <li>通过C++程序代码调用方法控制如下:</li> </ul> <pre><code class="language-c">void SetText(const String&amp; strText);</code></pre> <h4>设置字体</h4> <ul> <li>通过XML属性控制如下:</li> </ul> <pre><code class="language-xml">Font="ID_FONT_NORMAL"</code></pre> <ul> <li>通过C++程序代码调用方法控制如下:</li> </ul> <pre><code class="language-c">void SetFont(const String&amp; strTextFont, const String&amp; strLinkFont = String());</code></pre> <h4>设置链接字体</h4> <ul> <li>通过XML属性控制如下:</li> </ul> <pre><code class="language-xml">LinkFont="ID_FONT_NORMAL"</code></pre> <ul> <li>通过C++程序代码调用方法控制如下:</li> </ul> <pre><code class="language-c">void SetFont(const String&amp; strTextFont, const String&amp; strLinkFont = String());</code></pre> <h4>设置链接颜色</h4> <ul> <li>通过XML属性控制如下:</li> </ul> <pre><code class="language-xml">LinkColor="ID_COLOR_LINK"</code></pre> <ul> <li>通过C++程序代码调用方法控制如下:</li> </ul> <pre><code class="language-c">void SetLinkColor(const String&amp; strColor);</code></pre> <h4>设置提示颜色</h4> <ul> <li>通过XML属性控制如下:</li> </ul> <pre><code class="language-xml">TipsColor="ID_COLOR_TIPS"</code></pre> <ul> <li>通过C++程序代码调用方法控制如下:</li> </ul> <pre><code class="language-c">void SetTipsColor(const String&amp; strTipsColor);</code></pre> <h4>设置光标颜色</h4> <ul> <li>通过XML属性控制如下:</li> </ul> <pre><code class="language-xml">CaretColor="ID_COLOR_TEXT"</code></pre> <ul> <li>通过C++程序代码调用方法控制如下:</li> </ul> <pre><code class="language-c">void SetCaretColor(const String&amp; strCaretColor);</code></pre> <h4>设置选中背景颜色</h4> <ul> <li>通过XML属性控制如下:</li> </ul> <pre><code class="language-xml">SelBkgColor="ID_COLOR_LINK"</code></pre> <ul> <li>通过C++程序代码调用方法控制如下:</li> </ul> <pre><code class="language-c">void SetSelBkgColor(const String&amp; strColor);</code></pre> <h4>设置选中文本颜色</h4> <ul> <li>通过XML属性控制如下:</li> </ul> <pre><code class="language-xml">SelTextColor="ID_COLOR_WHITE"</code></pre> <ul> <li>通过C++程序代码调用方法控制如下:</li> </ul> <pre><code class="language-c">void SetSelTextColor(const String&amp; strColor);</code></pre> <h4>插入文本、图片和链接</h4> <ul> <li>通过C++程序代码插入文本、图片和链接如下:</li> </ul> <pre><code class="language-c">void InsertText(const String&amp; strText, const String&amp; strColor = String(), const String&amp; strFont = String(), const String&amp; strBkgColor = String()); void InsertText(const String&amp; strText, LONG nAfter, const String&amp; strColor = String(), const String&amp; strFont = String(), const String&amp; strBkgColor = String()); void AppendText(const String&amp; strText, const String&amp; strColor = String(), const String&amp; strFont = String(), const String&amp; strBkgColor = String()); void InsertImage(const String&amp; strImage, BOOL bClickOpen = FALSE, const CSize&amp; szLayout = CSize(), const CSize&amp; szMax = CSize(), const CSize&amp; szMin = CSize()); void InsertImage(const String&amp; strImage, LONG nAfter, BOOL bClickOpen = FALSE, const CSize&amp; szLayout = CSize(), const CSize&amp; szMax = CSize(), const CSize&amp; szMin = CSize()); void AppendImage(const String&amp; strImage, BOOL bClickOpen = FALSE, const CSize&amp; szLayout = CSize(), const CSize&amp; szMax = CSize(), const CSize&amp; szMin = CSize()); void InsertHyperlink(const String&amp; strText, const String&amp; strUrl = String(), UINT nCommandId = 0, const String&amp; strColor = String(), const String&amp; strFont = String(), const String&amp; strBkgColor = String()); void InsertHyperlink(const String&amp; strText, LONG nAfter, const String&amp; strUrl = String(), UINT nCommandId = 0, const String&amp; strColor = String(), const String&amp; strFont = String(), const String&amp; strBkgColor = String()); void AppendHyperlink(const String&amp; strText, const String&amp; strUrl = String(), UINT nCommandId = 0, const String&amp; strColor = String(), const String&amp; strFont = String(), const String&amp; strBkgColor = String()); void InsertView(CView* pView); void InsertView(CView* pView, LONG nAfter); void AppendView(CView* pView); void InsertXML(const String&amp; strXML); void InsertXML(const String&amp; strXML, LONG nAfter); void AppendXML(const String&amp; strXML);</code></pre> <h2>2 消息处理</h2> <h4>2.1 WM_EDIT_TEXT_CHANGE消息</h4> <p>编辑框文本发生变化时,会给所在窗口发送自定义消息WM_EDIT_TEXT_CHANGE。</p> <p>参考下面的示例代码:</p> <pre><code class="language-cpp">void CEditView::NotifyEditTextChange() { GetOwner()-&gt;SendMessage(WM_EDIT_TEXT_CHANGE, GetId(), reinterpret_cast&lt;LPARAM&gt;(this)); }</code></pre> <h2>请看下面的示例</h2> <h4>单行编辑框</h4> <h4>效果图</h4> <p><img src="http://www.skinui.cn/doc/img/5.0/3/EditView1.png" alt="编辑框" /></p> <h4>布局文件</h4> <pre><code class="language-xml">&lt;FlexLayout Width="MatchParent" Height="WrapContent" Direction="Column" Margin="40,10,20,10"&gt; &lt;TextView Width="MatchParent" Height="WrapContent" Text="ReadOnly"/&gt; &lt;EditView Width="MatchParent" Height="30" Background="Edit.png" ReadOnly="true" Margin="0,10,0,0" Tips="只读"/&gt; &lt;/FlexLayout&gt; &lt;FlexLayout Width="MatchParent" Height="WrapContent" Direction="Column" Margin="40,10,20,10"&gt; &lt;TextView Width="MatchParent" Height="WrapContent" Text="Limit"/&gt; &lt;EditView Width="MatchParent" Height="30" Background="Edit.png" Limit="20" Margin="0,10,0,0" Tips="限制输入字数20"/&gt; &lt;/FlexLayout&gt; &lt;FlexLayout Width="MatchParent" Height="WrapContent" Direction="Column" Margin="40,10,20,10"&gt; &lt;TextView Width="MatchParent" Height="WrapContent" Text="UpperCase"/&gt; &lt;EditView Width="MatchParent" Height="30" Background="Edit.png" UpperCase="true" Margin="0,10,0,0" Tips="自动大写"/&gt; &lt;/FlexLayout&gt; &lt;FlexLayout Width="MatchParent" Height="WrapContent" Direction="Column" Margin="40,10,20,10"&gt; &lt;TextView Width="MatchParent" Height="WrapContent" Text="LowerCase"/&gt; &lt;EditView Width="MatchParent" Height="30" Background="Edit.png" LowerCase="true" Margin="0,10,0,0" Tips="自动小写"/&gt; &lt;/FlexLayout&gt; &lt;FlexLayout Width="MatchParent" Height="WrapContent" Direction="Column" Margin="40,10,20,10"&gt; &lt;TextView Width="MatchParent" Height="WrapContent" Text="Account"/&gt; &lt;EditView Width="MatchParent" Height="30" Background="Edit.png" Account="true" Margin="0,10,0,0" Tips="账号"/&gt; &lt;/FlexLayout&gt; &lt;FlexLayout Width="MatchParent" Height="WrapContent" Direction="Column" Margin="40,10,20,10"&gt; &lt;TextView Width="MatchParent" Height="WrapContent" Text="Password"/&gt; &lt;EditView Width="MatchParent" Height="30" Background="Edit.png" Password="true" Margin="0,10,0,0" Tips="密码"/&gt; &lt;/FlexLayout&gt; &lt;FlexLayout Width="MatchParent" Height="WrapContent" Direction="Column" Margin="40,10,20,10"&gt; &lt;TextView Width="MatchParent" Height="WrapContent" Text="EnglishName"/&gt; &lt;EditView Width="MatchParent" Height="30" Background="Edit.png" EnglishName="true" Margin="0,10,0,0" Tips="英文名"/&gt; &lt;/FlexLayout&gt; &lt;FlexLayout Width="MatchParent" Height="WrapContent" Direction="Column" Margin="40,10,20,10"&gt; &lt;TextView Width="MatchParent" Height="WrapContent" Text="Number"/&gt; &lt;EditView Width="MatchParent" Height="30" Background="Edit.png" Number="true" Margin="0,10,0,0" Tips="数字"/&gt; &lt;/FlexLayout&gt; &lt;FlexLayout Width="MatchParent" Height="WrapContent" Direction="Column" Margin="40,10,20,10"&gt; &lt;TextView Width="MatchParent" Height="WrapContent" Text="Letter"/&gt; &lt;EditView Width="MatchParent" Height="30" Background="Edit.png" Letter="true" Margin="0,10,0,0" Tips="字符"/&gt; &lt;/FlexLayout&gt; &lt;FlexLayout Width="MatchParent" Height="WrapContent" Direction="Column" Margin="40,10,20,10"&gt; &lt;TextView Width="MatchParent" Height="WrapContent" Text="Mobile"/&gt; &lt;EditView Width="MatchParent" Height="30" Background="Edit.png" Mobile="true" Margin="0,10,0,0" Tips="手机号码"/&gt; &lt;/FlexLayout&gt; &lt;FlexLayout Width="MatchParent" Height="WrapContent" Direction="Column" Margin="40,10,20,10"&gt; &lt;TextView Width="MatchParent" Height="WrapContent" Text="Phone"/&gt; &lt;EditView Width="MatchParent" Height="30" Background="Edit.png" Phone="true" Margin="0,10,0,0" Tips="固定电话"/&gt; &lt;/FlexLayout&gt; &lt;FlexLayout Width="MatchParent" Height="WrapContent" Direction="Column" Margin="40,10,20,10"&gt; &lt;TextView Width="MatchParent" Height="WrapContent" Text="Email"/&gt; &lt;EditView Width="MatchParent" Height="30" Background="Edit.png" Email="true" Margin="0,10,0,0" Tips="电子邮箱"/&gt; &lt;/FlexLayout&gt;</code></pre> <h4>多行编辑框</h4> <h4>效果图</h4> <p><img src="http://www.skinui.cn/doc/img/5.0/3/EditView2.png" alt="编辑框" /></p> <h4>布局文件</h4> <pre><code class="language-xml">&lt;FlexLayout Width="MatchParent" Height="WrapContent" Direction="Column" Margin="40,10,20,10"&gt; &lt;EditView Id="2000" Width="MatchParent" Height="500" Background="Edit.png" Margin="0,10,0,0" MultiLine="true"/&gt; &lt;/FlexLayout&gt; &lt;FlexLayout Width="MatchParent" Height="WrapContent" Margin="40,0,20,20"&gt; &lt;Button Id="2001" Width="WrapContent" Height="WrapContent" Margin="0,0,20,0" Background="Button.png" Layout="Button.xml" ChildText11="插入文本"/&gt; &lt;Button Id="2002" Width="WrapContent" Height="WrapContent" Margin="0,0,20,0" Background="Button.png" Layout="Button.xml" ChildText11="插入链接命令"/&gt; &lt;Button Id="2003" Width="WrapContent" Height="WrapContent" Margin="0,0,20,0" Background="Button.png" Layout="Button.xml" ChildText11="插入链接URL"/&gt; &lt;Button Id="2004" Width="WrapContent" Height="WrapContent" Margin="0,0,20,0" Background="Button.png" Layout="Button.xml" ChildText11="插入图片"/&gt; &lt;/FlexLayout&gt;</code></pre> <h4>h文件</h4> <pre><code class="language-cpp">#pragma once class CDemoEditViewLayout : public CScrollLayout { public: enum { IDC_EDITVIEW = 2000, IDC_BUTTON_INSERT_TEXT = 2001, IDC_BUTTON_INSERT_LINK_COMMAND = 2002, IDC_BUTTON_INSERT_LINK_URL = 2003, IDC_BUTTON_INSERT_IMAGE = 2004, ID_COMMAD_OPEN = 1, ID_COMMAD_OPEN_FOLDER = 2, }; public: CDemoEditViewLayout(CView* pParent); public: virtual void OnBuildFinish(); protected: void OnBtnClickedInsertText(UINT uNotifyCode, int nID, CView* pView); void OnBtnClickedInsertLinkCommand(UINT uNotifyCode, int nID, CView* pView); void OnBtnClickedInsertLinkUrl(UINT uNotifyCode, int nID, CView* pView); void OnBtnClickedInsertImage(UINT uNotifyCode, int nID, CView* pView); void OnEditTextChange(LONG nId, CEditView* pEditView, BOOL&amp; bHandle); SKINUI_DECLARE_MESSAGE_MAP() private: CEditView* m_pEditView; SKINUI_DECLARE_DYNCREATE(CDemoEditViewLayout, CScrollLayout) };</code></pre> <h4>cpp文件</h4> <pre><code class="language-cpp">#include &lt;stdafx.h&gt; #include "DemoEditViewLayout.h" SKINUI_BEGIN_MESSAGE_MAP(CDemoEditViewLayout, CScrollLayout) ON_SKINUI_COMMAND(IDC_BUTTON_INSERT_TEXT, OnBtnClickedInsertText) ON_SKINUI_COMMAND(IDC_BUTTON_INSERT_LINK_COMMAND, OnBtnClickedInsertLinkCommand) ON_SKINUI_COMMAND(IDC_BUTTON_INSERT_LINK_URL, OnBtnClickedInsertLinkUrl) ON_SKINUI_COMMAND(IDC_BUTTON_INSERT_IMAGE, OnBtnClickedInsertImage) ON_SKINUI_WM_EDIT_TEXT_CHANGE() SKINUI_END_MESSAGE_MAP() CDemoEditViewLayout::CDemoEditViewLayout(CView* pParent) : CScrollLayout(pParent) , m_pEditView(NULL) { } void CDemoEditViewLayout::OnBuildFinish() { CScrollLayout::OnBuildFinish(); m_pEditView = dynamic_cast&lt;CEditView*&gt;(GetChildById(IDC_EDITVIEW)); } void CDemoEditViewLayout::OnBtnClickedInsertText(UINT uNotifyCode, int nID, CView* pView) { if(m_pEditView) { m_pEditView-&gt;InsertText(_T("文本")); } } void CDemoEditViewLayout::OnBtnClickedInsertLinkCommand(UINT uNotifyCode, int nID, CView* pView) { if(m_pEditView) { m_pEditView-&gt;InsertHyperlink(_T("打开"), String(), ID_COMMAD_OPEN); m_pEditView-&gt;InsertText(_T(" ")); m_pEditView-&gt;InsertHyperlink(_T("打开文件夹"), String(), ID_COMMAD_OPEN_FOLDER); } } void CDemoEditViewLayout::OnBtnClickedInsertLinkUrl(UINT uNotifyCode, int nID, CView* pView) { if(m_pEditView) { m_pEditView-&gt;InsertHyperlink(_T("百度一下,你就知道"), _T("www.baidu.com")); } } void CDemoEditViewLayout::OnBtnClickedInsertImage(UINT uNotifyCode, int nID, CView* pView) { if(m_pEditView) { m_pEditView-&gt;InsertImage(_T("Image.png")); m_pEditView-&gt;InsertImage(_T("Image.gif")); } } void CDemoEditViewLayout::OnEditTextChange(LONG nId, CEditView* pEditView, BOOL&amp; bHandle) { bHandle = TRUE; GetOwner()-&gt;Toast(_T("Text Change To: ") + pEditView-&gt;GetText()); }</code></pre>

页面列表

ITEM_HTML