SkinUI5.0官方文档

SkinUI5.0官方文档


链接

<p>超链CHyperlink,继承于CTextView,支持CTextView的所有属性和方法。</p> <h2>属性和相关方法</h2> <h4>设置超链的链接URL</h4> <ul> <li>通过XML属性控制如下:</li> </ul> <pre><code class="language-xml">URL="www.baidu.com"</code></pre> <ul> <li>通过C++程序代码调用方法控制如下:</li> </ul> <pre><code class="language-c">void SetURL(const String&amp; strURL);</code></pre> <h2>2 消息处理</h2> <h4>2.1 WM_COMMAND消息</h4> <p>单击链接,鼠标左键抬起时,有两种情况:</p> <ul> <li>如果是URL,直接调用系统默认浏览器打开这个URL;</li> <li>如果不是URL且Id不为0,会给链接所在的窗口发送WM_COMMAND消息。</li> </ul> <p>请参考下面的示例代码:</p> <pre><code class="language-cpp">void CHyperlink::HandleLButtonUp(CPoint point, BOOL&amp; bHandle) { CTextView::HandleLButtonUp(point, bHandle); if(GetState() == PRESSED) { if(!m_strURL.empty()) { SkinUI::OpenURL(m_strURL, GetOwner()); } else if(GetId() != 0) { GetOwner()-&gt;PostMessage(WM_COMMAND, GetId(), reinterpret_cast&lt;LPARAM&gt;(this)); } } SetState(HOVER); Redraw(); }</code></pre> <h2>示例</h2> <h4>效果图</h4> <p><img src="http://www.skinui.cn/doc/img/5.0/3/Hyperlink.png" alt="超链" /></p> <h4>布局文件</h4> <pre><code class="language-xml">&lt;FlexLayout&gt; &lt;TextView Width="MatchParent" Height="60" HorzAlign="Center" Text="IDS_CONTROL3_2" Font="ID_FONT_H4"/&gt; &lt;Line Width="MatchParent" Height="1" Margin="0,0,0,20"/&gt; &lt;RelativeLayout Width="MatchParent" Height="30" Layout="SeparatorLine.xml" ChildText11="发送命令消息"/&gt; &lt;RelativeLayout Width="MatchParent" Height="80"&gt; &lt;Hyperlink Id="1001" Width="WrapContent" Height="20" AlignParentLeft="40" AlignParentTop="10" Text="单击我,发送命令消息" /&gt; &lt;/RelativeLayout&gt; &lt;RelativeLayout Width="MatchParent" Height="30" Layout="SeparatorLine.xml" ChildText11="用本地浏览器打开URL"/&gt; &lt;RelativeLayout Width="MatchParent" Height="80"&gt; &lt;Hyperlink Width="WrapContent" Height="20" AlignParentLeft="40" AlignParentTop="10" Text="百度一下,你就知道" URL="www.baidu.com"/&gt; &lt;/RelativeLayout&gt; &lt;/FlexLayout&gt;</code></pre> <h4>h文件</h4> <pre><code class="language-cpp">#pragma once class CDemoHyperlinkLayout : public CScrollLayout { public: enum { IDC_HYPERLINK = 1001, }; public: CDemoHyperlinkLayout(CView* pParent); public: virtual void OnBuildFinish(); protected: void OnHyperlinkClicked(UINT uNotifyCode, int nID, CView* pView); SKINUI_DECLARE_MESSAGE_MAP() SKINUI_DECLARE_DYNCREATE(CDemoHyperlinkLayout, CScrollLayout) };</code></pre> <h4>cpp文件</h4> <pre><code class="language-cpp">#include &lt;stdafx.h&gt; #include "DemoHyperlinkLayout.h" SKINUI_BEGIN_MESSAGE_MAP(CDemoHyperlinkLayout, CScrollLayout) ON_SKINUI_COMMAND(IDC_HYPERLINK, OnHyperlinkClicked) SKINUI_END_MESSAGE_MAP() CDemoHyperlinkLayout::CDemoHyperlinkLayout(CView* pParent) : CScrollLayout(pParent) { } void CDemoHyperlinkLayout::OnBuildFinish() { CScrollLayout::OnBuildFinish(); } void CDemoHyperlinkLayout::OnHyperlinkClicked(UINT uNotifyCode, int nID, CView* pView) { GetOwner()-&gt;MsgBox(_T("链接被点击了")); }</code></pre>

页面列表

ITEM_HTML