我需要处理CDhtmlDialog中的一个元素的onclick事件,该元素使用HTTP协议(protocol)(而不是资源中的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函数。但是,什么也没有发生。如果DHTML_EVENT_ONCLICK如果加载外部URL而不是加载资源,则似乎对CDhtmlDialog不起作用?有什么方法可以捕获CDhtmlDialog中通过HTTP加载的HTML的onclick事件吗?
最佳答案
DHTML_EVENT_TAG(DISPID_HTMLELEMENTEVENTS_ONCLICK, _T("a"), OnLinkClickedMethod)
那真是很难找到。 Microsoft的分派(dispatch)ID文档非常糟糕。这将捕获CDHtmlDialog中曾经单击的每个链接。
给所有将来任性的旅行者的注释:所有调度ID都在MsHtmdid.h头文件中。