[MFC] Static Text超链接

MFC实现跳转超链接(附完整源码) 阅读详情

从设置超链接的麻烦程度可见,MFC是多么的不灵活。


准备工作

头文件中添加成员变量:

CRect m_rect;

OnInitDialog()中添加:

GetDlgItem(IDC_STATIC_AUTHOR)->GetWindowRect(&m_rect);
ScreenToClient(&m_rect);

目的在于获取到Static Text的矩形区域


为Static Text添加超链接

对话框添加WM_LBUTTONUP(鼠标左键弹起)事件,OnLButtonUp()函数实现如下:

void CAntiHashDlg::OnLButtonUp(UINT nFlags, CPoint point)
{
	if (point.x>m_rect.left && point.x<m_rect.right&&point.y<m_rect.bottom&&point.y>m_rect.top)
	{
		ShellExecute(NULL,NULL,"http://www.jianshu.com/users/af8d5ddcb7c5",NULL,NULL,SW_NORMAL);
	}
	CDialog::OnLButtonUp(nFlags, point);
}
如此点击Static Text的矩形区域就可以打开网页了。


使鼠标移至Static Text矩形区域变为手的形状

对话框添加WM_MOUSEMOVE(鼠标移动)事件,OnMouseMove()函数实现如下:

void CAntiHashDlg::OnMouseMove(UINT nFlags, CPoint point)
{
	if (point.x > m_rect.left && point.x < m_rect.right && point.y < m_rect.bottom && point.y > m_rect.top)
	{
		HCURSOR hCursor;
		hCursor = ::LoadCursor ( NULL, IDC_HAND );
		::SetCursor ( hCursor );
	}
	CDialog::OnMouseMove(nFlags, point);
}


设置字体颜色

超链接总该是蓝色,不然无法引起用户的注意啊。

对话框添加WM_CTLCOLOR事件,OnCtlColor()函数实现如下:

HBRUSH CAntiHashDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
	HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

	// TODO:  在此更改 DC 的任何属性
	if (pWnd->GetDlgCtrlID() == IDC_STATIC_AUTHOR)
	{
		pDC->SetTextColor(RGB(64,148,199));
	}

	// TODO:  如果默认的不是所需画笔,则返回另一个画笔
	return hbr;
}
大功告成:


MFC Windows 程序设计[349]之多项超链接编辑框 MFC是微软公司提供的一个类库(class libraries),用以减少应用程序开发人员的工作量。其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。有很多初学MFC的小伙伴们都觉得MFC比较难学,看书吧,看了就忘了,网上的一些教程又是写的含糊不清,故而学习起来很吃力...... 故此,本专栏亲自研究,实践,由易到难,层层深入,将调试过程中所遭所遇进行详细讲解,注意事项进行一一列举,希望能够帮助到各位初学MFC的小伙伴,避免走弯路,费时费力。...... 阅读详情

相关推荐

MFC Windows 程序设计[351]之超链接的简单例程

MFC是微软公司提供的一个类库(class libraries),用以减少应用程序开发人员的工作量。其中包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。有很多初学MFC的小伙伴们都觉得MFC比较难学,看书吧,看了就忘了,网上的一些教程又是写的含糊不清,故而学习起来很吃力...... 故此,本专栏亲自研究,实践,由易到难,层层深入,将调试过程中所遭所遇进行详细讲解,注意事项进行一一列举,希望能够帮助到各位初学MFC的小伙伴,避免走弯路,费时费力。......

hnjzfwy的博客 996

用MFC实现超链接

1, 創建MFC(exe), 窗體中放入一對label, 一對button, 導入一個cur手型鼠標指針到工程中. 2, label1平行button1, label2平行button2, 所有控件ID值默認即可. 3, label1&label2標題分別:"Weblog","E-mail", button1&button2標題分別:"http://www.wayce.net","mailt

sanqima的专栏 2220

MFC超链接(HyperLink)按钮,超强推荐!

这个控件封装了能够在鼠标点击时链接到网页的超链接HyperLink控件,并把它们都集成到一个普通的按钮上。另外这个按钮支持32位图的图标!

MFC 动态创建超链接 CStatic

本来觉得CStatic 我们很会少拿来大量的对其修改操作,但是今天自己却需要对其进行修改,说一下使用过程和遇到的问题 1)首先说下创建问题,查看很多网页,许多将动态的创建时,第一步仍是要先给其分配一个ID,由于我要完成的客户自己画出这个文本框,那么分配这个ID 就很难实现; 选择用Create, CStatic *m_static  = new CStatic; m_static->Cre

zhoxier的专栏 4193

VS2013/MFC基于对话框编程文本超链接代码

VS2013/MFC基于对话框编程:文本超链接,可以在2013直接编译打开。VS2013/MFC基于对话框编程:文本超链接,可以在2013直接编译打开。

MFC超链接静态文本类的使用

MFC超链接静态文本类的使用

用MFC实现静态文本超链接的方法 及静态文本颜色

最近写一个小的对话框程序时,想加一个文本超链接,研究了一下,发上自己的研究成果,供大家参考。下面说说完整的步骤。      (假定静态文本ID为ID_STATIC)      首先,设置鼠标的形状及响应鼠标点击      第一步,在Dlg类中定义一个protect成员变量HCURSOR  m_hCursor,      在构造函数里(或者在OnInitDialog()里)调用语句 

ccfxue的博客 767

MFC超链接实现

用于MFC中超链接的实现功能,就是鼠标移上去会有点问题,其他还不错,可以参卡。

用MFC实现静态文本超链接的方法

原文出处:http://blog.youkuaiyun.com/cddchina/article/details/8073345 1、首先导入鼠标图标 可以在C:\Windows\Cursors文件里随便拷贝一个.cur格式的图标放到你的工程文件rc里,然后在资源视图-》添加资源-》选择Cursor -》导入你刚才复制的文件,几下ID; (假定静态文本ID为ID_STATIC

自由的天空 1150

JavaScript性能优化:全链路性能优化策略

JavaScript性能优化是提升Web应用质量的核心要素,直接影响用户体验与业务成果。研究表明,页面加载延迟1秒可能导致转化率下降7%。高效的JavaScript执行能减少主线程阻塞,避免动画卡顿或操作延迟,尤其在移动端低性能设备上更为关键。优化内存管理与减少冗余计算可降低浏览器资源消耗,防止因内存泄漏导致的崩溃,提升应用稳定性。在竞争激烈的互联网环境中,性能优势已成为产品差异化的关键因素,直接影响用户留存与商业价值。因此,性能优化应作为开发全周期的核心实践,而非事后补救措施。

weixin_49707375的博客 1270

cmw500 lte非信令测试_WiFi信令测试在研发过程中的作用

  1、关于信令测试的故事  2016年的某天,某著名网络产品公司技术负责人致电寻求技术支持:我们的无线路由器遇到了一个困惑:我们某款路由器应用于实际WiFi网络中时,WiFi终端接入非常困难。但是我们使用测试工具检测此路由器,它的所有物理射频指标都非常优异。不知道是为什么?  我来到了测试现场看到:WiFi路由器受控于芯片公司的测试工具,其WiFi发射机指标在非信令测试仪上显示:无论功率、EVM...

weixin_39662263的博客 3924

VS2013/MFC基于对话框编程:文本超链接

静态文本(static text)作为对话框的常用控件之一,一般情况下起着指示说明的作用,让用户明白对话框中的相关信息和功能,这种情况一般不关联点击事件。但有时候需要通过文本来打开某个超链接,比如说某个网址,这时候就需要添加相关函数进行实现。 工具/原料 • Visual Studio 2013 方法/步骤 打开创建好的Demo项目,在对话框中添加一个group box,3个static text

iflyme的博客 909

Unity UI适配实战:从Canvas Scaler到主流游戏适配方案解析

本文深入解析Unity UI适配的核心技术,重点介绍Canvas Scaler组件的关键参数如Reference Resolution和Screen Match Mode,并提供主流游戏适配方案实战分析。通过九宫格拉伸、动态调整等技巧,帮助开发者解决多设备适配难题,提升游戏UI在不同分辨率下的表现。

weixin_29001419的博客 972

MFC Static 控件详解:文本显示与图像展示的全能工具

本文全面介绍了MFC中Static控件的使用方法。作为基础组件,Static控件不仅用于显示文本和图像,还能实现交互功能。文章详细讲解了控件的创建方式(资源编辑器和动态创建)、常用操作(文本设置、图像显示、状态控制)、消息处理机制(点击和鼠标事件)、高级应用(超链接效果、绘图容器、动态文本)以及常见问题解决方案。通过合理运用Static控件的属性和消息机制,开发者可以将其从简单的显示元素扩展为功能丰富的界面组件,提升MFC应用程序的用户体验。

code_pranger的博客 1296

从开通VPS到搭建宝塔面板全教程

你在输入域名(此时我们可能没有类似aaa.com这样的域名,所以要输入VPS的IP地址)的时候,下面的根目录也会跟着变动,等输入完成后,你可以把根目录再改回成/www/wwwroot/dq。这时,在你的浏览器中,输入外网面板地址的URL,输入username和password,即可登陆宝塔面板。第一次登陆,需要绑定你的宝塔账号,你可以到宝塔的注册界面,用手机注册一个,然后绑定,首先看一下你的VPS操作系统是什么类型的(其实你在选择VPS的时候,就已经选定了,我选择的事Centos系统)。

kxltsuperr的专栏 3734

基于STM32L4XX 、HAL库的DRV8833RTYR步进电机驱动器驱动程序应用设计

/ 注:具体计算取决于你的定时器配置,例如 Period=1000, duty_cycle 0-100 -> compare_value = duty_cycle * 10。// 控制电机方向/停止/刹车。//================== 硬件引脚映射 (请根据实际电路修改) ==================

PP_Cottage的博客 180

【转】用MFC实现静态文本超链接的方法

用MFC实现静态文本超链接的方法       所属分类: MFC/SDK编程 最近写一个小的对话框程序时,想加一个文本超链接,研究了一下,发上自己的研究成果,供大家参考。下面说说完整的步骤。 (假定静态文本ID为ID_STATIC) 首先,设置鼠标的形状及响应鼠标点击 第一步,在Dlg类中定义一个protect成员变量HCURSOR  m_hCursor, 在构造函数里(或者在OnI

My学习空间 852

Imagenet数据集1000类别中英文

英文 {0: 'tench, Tinca tinca', 1: 'goldfish, Carassius auratus', 2: 'great white shark, white shark, man-eater, man-eating shark, Carcharodon carcharias', 3: 'tiger shark, Galeocerdo cuvieri', 4: 'hammerhead, hammerhead shark', 5: 'electric ray, cram.

识物专栏 1800

MFC超链接

最近写一个小的对话框程序时,想加一个文本超链接,研究了一下,发上自己的研究成果,供大家参考。下面说说完整的步骤。 (假定静态文本ID为ID_STATIC) 首先,设置鼠标的形状及响应鼠标点击 第一步,在Dlg类中定义一个protect成员变量HCURSORm_hCursor, 在构造函数里(或者在OnInitDialog()里)调用语句 m_hCursor=AfxGetApp()...

weixin_30247159的博客 209

【Flutter 问题系列第 85 篇】Xcode 运行 Flutter 提示 The Dart VM Service was not discovered after 60 seconds.

在 Xcode 上运行 Flutter 时提示 `The Dart VM Service was not discovered after 60 seconds. This is taking much longer than expected...`,意思是 `60秒后未发现Dart虚拟机服务。这比预期的要长得多`

“Allen Su”的博客 2236

2、硬件工程师笔试面试汇总(2025版本)

本文摘要:文章系统梳理了硬件工程师笔试面试中的电子元器件知识要点,涵盖电阻、电容、电感、二极管、三极管、MOS管等器件的工作原理、选型要点和应用场景。详细解析了UART、I2C、SPI等通信协议的特点及实现方式,并探讨了电源管理、信号处理、PCB设计等核心问题。针对常见电路如放大电路、滤波电路、逻辑电路等提供了深入分析,同时介绍了示波器使用、单片机系统设计等实用技能。文章还包含器件封装、电平转换、时序分析等工程实践内容,并附有相关真题解析和仿真实验指导,为硬件工程师提供全面的技术参考。

XU157303764的博客 9011

MFC 文本超链接

第一步,在Dlg类中定义一个protect成员变量HCURSOR  m_hCursor, 在构造函数里(或者在OnInitDialog()里)调用语句 m_hCursor=AfxGetApp()->LoadCursor(IDI_CURLINK);加载鼠标;(IDI_CURLINK为鼠标的icon) 第二步,在Dlg类中定义一个protect成员变量RECT  m_StaticRect,表示静

Laughing Gor 1776

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

静态文本超链接

近写一个小的对话框程序时,想加一个文本超链接,研究了一下,发上自己的研究成果,供大家参考。下面说说完整的步骤。 (假定静态文本ID为ID_STATIC) 首先,设置鼠标的形状及响应鼠标点击 第一步,在Dlg类中定义一个protect成员变量HCURSORm_hCursor, 在构造函数里(或者在OnInitDialog()里)调用语句 m_hCursor=Af...

weixin_34310127的博客 247

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

MFC控件(一)

静态文本控件 设置控件文本: 1、使用属性窗口设置。 2、动态设置控件文本:调用CStatic的SetWindowText()方法 (注意:控件ID不能是默认的IDC_STATIC,需修改,不修改不能在类向导中显示,则不能为静态文本控件关联变量) 响应鼠标单击事件: 1、更改静态文本ID,不可为默认。 2、将静态文本控件Styles设置为:Notify 3、通过类向导添加鼠标单击事

MOKA 811

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

上一篇: [笔记]《深入浅出Ext JS(第2版)》
下一篇: [MFC] 对话框文件拖拽
_逸之
博客等级 码龄15年 79粉丝 142原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值