在扩展的 CDHtmlDialog 类的上下文中,您应该能够使用如下代码访问和修改 dom 元素:
IHTMLElement* pElement = NULL;
if(GetElement(_T("ELEMENT_BY_ID"), &pElement) == S_OK && pElement != NULL){
// Get element html
BSTR html = SysAllocString(_T(""));
pElement->get_outerHTML(&html);
// Update element html
CString updatedHtml;
updatedHTML.Format(_T("<div ID=\"ELEMENT_BY_ID\" > %s </div>"), _T("BLA"));
pElement->put_outerHTML(updatedHtml.AllocSysString());
}
要捕获事件,您可以注册一个处理程序,该处理程序将在单击 id 的元素时触发。
//
BEGIN_DHTML_EVENT_MAP(CYourDlg)
DHTML_EVENT_ONCLICK(_T("ELEMENT_ID_TO_WATCH"), OnElementClickHandler)
protected:
HRESULT OnElementClickHandler(IHTMLElement *pElement);
HRESULT CYourDlg::OnElementClickHandler(IHTMLElement* /*pElement*/)
{
return S_OK;
}