首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用WTL::CHyperLink?

如何使用WTL::CHyperLink?
EN

Stack Overflow用户
提问于 2016-01-24 00:01:32
回答 1查看 433关注 0票数 3

我试图使用WTL::CHyperLink,以便在我的应用程序上显示一个可点击的链接。

根据这篇文章,我需要将它附加到静态文本控件。

因此,在我的图形用户界面中,我现在创建了一个ID为IDC_LINK的静态文本控件

在我的DDX地图上:

代码语言:javascript
复制
BEGIN_DDX_MAP(MyDialog)
    DDX_CONTROL_HANDLE(IDC_LINK, m_link)
END_DDX_MAP()

作为成员变量:

代码语言:javascript
复制
CHyperLink m_link;

不过,我一直有这样的想法:

代码语言:javascript
复制
Error C2679: Binary Operator '=': No operator accepting a right-hand operant of type 'ATL::CWindow' (or no suitable conversion possible)

有人知道我做错了什么吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-24 09:17:26

WTL CHyperLink是一个自定义控件实现类,与其他类(如CEdit,它们是瘦HWND包装器)不同,您不能通过使用带有窗口句柄的赋值操作符(这是DDX_CONTROL_HANDLE映射试图做的操作)和仅在一般情况下操作窗口句柄来初始化该控件。您应该从头开始创建一个控件窗口(CHyperLink::Create),或者使用预先创建的静态控件并使用CHyperLink::SubclassWindow对其进行子类。

在对话框模板中已经存在静态控件的情况下,可以尝试DDX_CONTROL宏而不是DDX_CONTROL_HANDLE,因为它试图通过使用SubclassWindow调用子类来初始化。

非DDX初始化代码片段是这里SubclassWindow + WM_INITDIALOG处理程序中的SetHyperLink调用。

您之前问过一个类似的问题:控制,当时您混淆了相同的两个DDX宏.

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34970545

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档