65.9K
CodeProject 正在变化。 阅读更多。
Home

WTL CBitmapHyperLink 类

starIconstarIconstarIconstarIcon
emptyStarIcon
starIcon

4.95/5 (9投票s)

2005年1月19日

CPOL

1分钟阅读

viewsIcon

57134

downloadIcon

757

从 CHyperLink 派生的类,在链接旁边显示位图,并允许鼠标悬停时改变颜色。

Image

引言

WTL 包含一个 CHyperLink 类,用于创建超链接。该控件的主要特性是

  1. 超链接看起来像 IE 中的那样。
  2. 当鼠标移动到链接上时,光标会变成手型。
  3. 如果鼠标在链接上停留一段时间,将显示工具提示。
  4. CHyperLink 也支持键盘接口。

但它不允许进行两件事,而这是我正在寻找的——在链接旁边显示位图,以及鼠标悬停时改变链接颜色。因此,我创建了类 CBitmapHyperLink,它从 CHyperLink 派生,并允许您执行这些操作。

使用代码

要在您的应用程序中集成 CBitmapHyperLink,首先需要将以下文件添加到您的项目中,如下所示

#include "BitmapHyperLink.h"

然后使用资源编辑器将静态控件添加到您的对话框中,并在您的对话框类中定义一个变量

CBitmapHyperLink m_Link;

OnInitDialog() 函数中添加以下行

LRESULT OnInitDialog(UINT /*uMsg*/, WPARAM /*wParam*/, 
                       LPARAM /*lParam*/, BOOL& /*bHandled*/)
{
    ...

    m_Link.SetHyperLink(_T("http://www.google.com"));
    m_Link.SetLabel(_T("Looking for something?"));
    m_Link.SubclassWindow(GetDlgItem(IDC_STATIC_URL));
    m_Link.SetExtendedStyle(HLINK_LEFTIMAGE | 
                   HLINK_UNDERLINEHOVER | HLINK_NOTOOLTIP);
    m_Link.SetLinkColor(RGB(0, 0, 0));
    m_Link.SetVisitedColor(RGB(0, 0, 0));
    m_Link.SetHoverColor(RGB(0, 0, 255));
    HBITMAP hBmp = m_Link.AddBitmap(IDB_BITMAP);
    ATLASSERT(hBmp);

    ...

    return TRUE;
}

历史

  • 2005年1月18日 - 初始发布。

免责声明

本软件及其附带的文件按“原样”分发,不提供任何形式的保证,无论是明示的还是暗示的。对于可能造成的任何损害,概不负责。用户必须承担使用本软件的全部风险。

© . All rights reserved.