如何使用 WTL::CHyperLink?
How do I use WTL::CHyperLink?
我正在尝试使用 WTL::CHyperLink 以便在我的应用程序上显示可点击的 link。
根据this article,我需要将其附加到静态文本控件。
因此,在我的 GUI 中,我现在创建了一个 ID 为 IDC_LINK
的静态文本控件
在我的 DDX 地图中:
BEGIN_DDX_MAP(MyDialog)
DDX_CONTROL_HANDLE(IDC_LINK, m_link)
END_DDX_MAP()
并作为成员变量:
CHyperLink m_link;
然而,我总是这样:
Error C2679: Binary Operator '=': No operator accepting a right-hand operant of type 'ATL::CWindow' (or no suitable conversion possible)
有谁知道我做错了什么吗?
WTL CHyperLink
是一个自定义控件实现 class 并且不像 CEdit
等其他 classes,它们是薄 HWND
包装器,您无法初始化通过使用带有 window 句柄的赋值运算符(这是 DDX_CONTROL_HANDLE
map 试图做的)和仅一般地仅操纵 window 句柄来控制。您应该从头开始创建控件 window (CHyperLink::Create
),或者采用 pre-created 静态控件并使用 CHyperLink::SubclassWindow
.[= 子class 它24=]
对话框模板中已经存在静态控件,它应该支持您的超链接,您可以尝试使用 DDX_CONTROL
宏而不是 DDX_CONTROL_HANDLE
,因为它会尝试通过 sub[=34= 进行初始化]ing 使用 SubclassWindow
调用。
Non-DDX 初始化代码片段是 here: SubclassWindow
+ SetHyperLink
calls in WM_INITDIALOG
handler.
您之前问过类似的问题: 那时您以另一种方式混淆了相同的两个 DDX 宏...
我正在尝试使用 WTL::CHyperLink 以便在我的应用程序上显示可点击的 link。
根据this article,我需要将其附加到静态文本控件。
因此,在我的 GUI 中,我现在创建了一个 ID 为 IDC_LINK
的静态文本控件在我的 DDX 地图中:
BEGIN_DDX_MAP(MyDialog)
DDX_CONTROL_HANDLE(IDC_LINK, m_link)
END_DDX_MAP()
并作为成员变量:
CHyperLink m_link;
然而,我总是这样:
Error C2679: Binary Operator '=': No operator accepting a right-hand operant of type 'ATL::CWindow' (or no suitable conversion possible)
有谁知道我做错了什么吗?
WTL CHyperLink
是一个自定义控件实现 class 并且不像 CEdit
等其他 classes,它们是薄 HWND
包装器,您无法初始化通过使用带有 window 句柄的赋值运算符(这是 DDX_CONTROL_HANDLE
map 试图做的)和仅一般地仅操纵 window 句柄来控制。您应该从头开始创建控件 window (CHyperLink::Create
),或者采用 pre-created 静态控件并使用 CHyperLink::SubclassWindow
.[= 子class 它24=]
对话框模板中已经存在静态控件,它应该支持您的超链接,您可以尝试使用 DDX_CONTROL
宏而不是 DDX_CONTROL_HANDLE
,因为它会尝试通过 sub[=34= 进行初始化]ing 使用 SubclassWindow
调用。
Non-DDX 初始化代码片段是 here: SubclassWindow
+ SetHyperLink
calls in WM_INITDIALOG
handler.
您之前问过类似的问题: