我正在使用CDHtmlDialog创建一个简单的MFC应用程序。我希望我的应用程序执行以下操作。
使用MFC代码将图像加载到DHTML页面。
使用MFC代码更改DHTML页面中的文本。
在MFC代码中捕获DHTML按钮,并根据该更改图像&文本。
1& 2我计划在TIMER或Thread内部进行此操作,并动态地为用户更改它们。
我能够创建一个简单的应用程序,但正在努力的是改变图像&来自MFC代码的DHTML页面中的文本。
有人可以告诉我该怎么做吗?
示例应用或代码非常棒。
提前致谢。
答案 0 :(得分:1)
在扩展的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;
}