1.3.3 小试牛刀--编程(www.cppentry.com)实现写邮件超级链接(3)
③ 定义函数SetURL()和GetURL(),分别设置链接的URL地址并获取URL。具体代码如下:
- //设定URL
- void CHyperLink::SetURL(CString strURL)
- {
- m_strURL = strURL;
- if (::IsWindow(GetSafeHwnd())) {
- PositionWindow();
- m_ToolTip.UpdateTipText(strURL, this, TOOLTIP_ID);
- }
- }
- CString CHyperLink::GetURL() const
- {
- return m_strURL;
- }
-
④ 定义SetColours()、GetLinkColour()、GetVisitedColour()和GetHoverColour()函数,用于设置链接的不同访问状态下的颜色,具体代码如下:- //设定颜色
- void CHyperLink::SetColours(COLORREF crLinkColour, COLORREF crVisitedColour,
- COLORREF crHoverColour /* = -1 */)
- {
- m_crLinkColour = crLinkColour;
- m_crVisitedColour = crVisitedColour;
- if (crHoverColour == -1)
- m_crHoverColour = ::GetSysColor(COLOR_HIGHLIGHT);
- else
- m_crHoverColour = crHoverColour;
- if (::IsWindow(m_hWnd))
- Invalidate();
- }
-
- COLORREF CHyperLink::GetLinkColour() const
- {
- return m_crLinkColour;
- }
-
- COLORREF CHyperLink::GetVisitedColour() const
- {
- return m_crVisitedColour;
- }
-
- COLORREF CHyperLink::GetHoverColour() const
- {
- return m_crHoverColour;
- }
⑤ 定义函数SetVisited()和GetVisited(),用于设置是否被访问过,具体代码如下: - void CHyperLink::SetVisited(BOOL bVisited /* = TRUE */)
- {
- m_bVisited = bVisited;
-
- if (::IsWindow(GetSafeHwnd()))
- Invalidate();
- }
-
- BOOL CHyperLink::GetVisited() const
- {
- return m_bVisited;
- }