跳转至

链接控件 (SLink)

链接控件提供了类似HTML链接的功能,可以在点击时触发特定操作或跳转到指定URL。

基本信息

  • 类名SLink
  • 控件标签link
  • 基类SWindow
  • 功能:提供链接功能

属性说明

基本属性

属性名 类型 默认值 说明
text string - text value
href string - 链接跳转url

外观属性

属性名 类型 默认值 说明
skin string - 皮肤
colorText color - 文本颜色
colorTextHover color - Hover颜色
font string - 文本字体
fontHover string - Hover字体

交互属性

属性名 类型 默认值 说明
cursor string - 光标,可选值:arrow,ibeam,wait,cross,uparrow,size,sizenwse,sizenesw,sizewe,sizens,sizeall,no,hand,help

使用示例

基本链接

<link pos="10,10,200,30" 
      name="link_basic"
      href="https://github.com/SOUI2/soui" 
      colorText="#0000FF" 
      colorTextHover="#000088"
      cursor="hand">
    访问SOUI GitHub
</link>

带下划线的链接

<link pos="10,40,200,60" 
      name="link_underline"
      href="https://soui.github.io"
      colorText="#0000FF"
      colorTextHover="#FF0000"
      font="underline:1"
      fontHover="underline:1,bold:1"
      cursor="hand">
    访问SOUI文档
</link>

自定义样式的链接

<link pos="10,70,200,90" 
      name="link_styled"
      href="https://github.com"
      colorText="#333333"
      colorTextHover="#007ACC"
      font="italic:1"
      fontHover="underline:1,italic:1"
      cursor="hand">
    GitHub链接
</link>

事件处理

链接控件主要响应以下事件:

事件名 EventID 说明
EVT_CMD EventCmd::EventID 命令事件(点击时触发)
EVT_MOUSE_HOVER EventMouse::EventID 鼠标悬停事件
EVT_MOUSE_LEAVE EventMouse::EventID 鼠标离开事件
// 事件处理示例
EVENT_MAP_BEGIN()
    EVENT_NAME_COMMAND(L"link_basic", OnLinkClick)
EVENT_MAP_END()

bool CMainDlg::OnLinkClick()
{
    SLink *pLink = FindChildByName2<SLink>(L"link_basic");
    SStringT strHref = pLink->GetHref();
    // 处理链接点击,例如打开浏览器
    ShellExecute(NULL, L"open", strHref, NULL, NULL, SW_SHOWNORMAL);
    return true;
}

代码操作

// 查找链接控件
SLink *pLink = FindChildByName2<SLink>(L"link_basic");

// 设置链接地址
pLink->SetHref(L"https://new-url.com");

// 获取链接地址
SStringT strHref = pLink->GetHref();

// 设置链接文本
pLink->SetWindowText(L"新链接文本");

// 获取链接文本
SStringT strText = pLink->GetWindowText();

// 设置文本颜色
pLink->SetAttribute(L"colorText", L"#FF0000");
pLink->SetAttribute(L"colorTextHover", L"#00FF00");

最佳实践

  1. 视觉一致性:使用标准的链接颜色(如蓝色)和悬停效果
  2. 光标提示:设置 cursor 为 "hand" 以提供明确的交互提示
  3. 下划线效果:通过 font 属性添加下划线增强链接识别度
  4. URL验证:在处理链接点击时验证URL的有效性

常见问题

Q: 链接点击无反应怎么办?

A: 确保正确处理了 EVT_CMD 事件,并在事件处理函数中实现跳转逻辑。

Q: 鼠标悬停效果不明显怎么办?

A: 检查是否设置了 colorTextHoverfontHover 属性。

Q: 链接文本显示不完整怎么办?

A: 确保控件宽度足够显示文本,或调整字体大小。

相关控件