1

我需要为 CDhtmlDialog 中的 A 元素处理 onclick 事件,该元素使用 HTTP 协议(​​不是来自资源的 HTML)加载外部 HTML 文件。我使用以下代码:

BEGIN_DHTML_EVENT_MAP(CAdDialog)
    DHTML_EVENT_ONCLICK(_T("adlink"), OnAnchorClicked)
END_DHTML_EVENT_MAP()

我的 A 元素 HTML 如下:

<a href="http://www.google.com/" id="adlink">Click here!!!</a>

我希望当用户单击链接时 CDhtmlDialog 将调用 OnAnchorClicked 函数。然而,什么都没有发生。如果 CDhtmlDialog 加载外部 URL 而不是加载资源,看起来 DHTML_EVENT_ONCLICK 对它不起作用?有没有办法在 CDhtmlDialog 中捕获通过 HTTP 加载的 HTML 的 onclick 事件?

4

1 回答 1

2
DHTML_EVENT_TAG(DISPID_HTMLELEMENTEVENTS_ONCLICK, _T("a"), OnLinkClickedMethod)

这真是一个痛苦的发现。Microsoft 的 dispatch id 文档很糟糕。这将在您的 CDHtmlDialog 中捕获每个单击的链接。

对所有未来任性的旅行者的说明:所有调度 ID 都在 MsHtmdid.h 头文件中。

于 2012-05-12T04:32:09.093 回答