在RichEdit中实现超链接

omjlh4984

omjlh4984

2016-02-19 16:35

今天给大家分享的是由图老师小编精心为您推荐的在RichEdit中实现超链接,喜欢的朋友可以分享一下,也算是给小编一份支持,大家都不容易啊!

  首先在Form上放置一个RichEdit。

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  在窗体的构造函数中添加以下代码:

  

__fastcall TMainForm::TMainForm(TComponent* Owner)
    : TForm(Owner)
{
  unsigned mask = SendMessage(RichEdit1-Handle, EM_GETEVENTMASK, 0, 0);
  SendMessage(RichEdit1-Handle, EM_SETEVENTMASK, 0, mask | ENM_LINK);
  SendMessage(RichEdit1-Handle, EM_AUTOURLDETECT, true, 0); //自动检测URL
  RichEdit1-Text = "欢迎访问C++ Buildern"
           "网址: http://www.ccrun.comn"
           "偶的信箱:n"
           "mailto::info@ccrun.com n"
           "嘿嘿n";
}

  重载窗体的WndProc

  1。在.h中添加:

  protected:

  virtual void __fastcall WndProc(Messages::TMessage &Message);

  2。在.cpp中添加:

(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)

  

//---------------------------------------------------------------------------
void __fastcall TMainForm::WndProc(Messages::TMessage &Message)
{
  if (Message.Msg == WM_NOTIFY)
  {
    if (((LPNMHDR)Message.LParam)-code == EN_LINK)
    {
      ENLINK* p = (ENLINK *)Message.LParam;
      if (p-msg == WM_LBUTTONDOWN)
      {
        SendMessage(RichEdit1-Handle, EM_EXSETSEL, 0, (LPARAM)&(p-chrg));
        ShellExecute(Handle, "open", RichEdit1-SelText.c_str(), 0, 0, SW_SHOWNORMAL);
      }
    }
  }
  TForm::WndProc(Message);
}

  以上代码均已测试通过。

展开更多 50%)
分享

猜你喜欢

在RichEdit中实现超链接

编程语言 网络编程
在RichEdit中实现超链接

Delphi中为RichEdit加入链接

Delphi
Delphi中为RichEdit加入链接

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

在Word2024文档中取消超链接

word
在Word2024文档中取消超链接

在Word2024文档中编辑超链接

word
在Word2024文档中编辑超链接

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

在Word2024文档中创建图片超链接

word
在Word2024文档中创建图片超链接

在PPT演示文稿中如何创建超链接

电脑网络
在PPT演示文稿中如何创建超链接

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

C++Builder中集合的处理

C++Builder中集合的处理

Drupal入门教程之----用户管理

Drupal入门教程之----用户管理
下拉加载更多内容 ↓