描述:
请问如何在ATL Activex控件中设置Html的OnLoad事件,让他调用控件的一个特定方法。
我的代码如下,但是好像调用不了,没什么反映。我查了文档说是要在IDHTMLTest2中定义个缺省方法( IDispatch of a object with default method),但是如何定义一个default method
//接口定义
interface IDHTMLTest2 : IDispatch
{
[id(1), helpstring("method onbeforeunload")] HRESULT ShowMsg();
};
//核心代码
CComPtr<IOleContainer>spIE;
//get the container interface pointer
m_spClientSite->GetContainer(&spIE);
//QI the container for the document interface
CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2>spDoc(spIE);
if (spDoc){
//set the title
spDoc->put_title(CComBSTR("good"));
CComPtr<IHTMLElement> spElement;
spDoc->get_body(&spElement);
CComQIPtr<IHTMLBodyElement> spBody(spElement);
VARIANT v;
spBody->get_onbeforeunload(&v);
QueryInterface(IID_IDHTMLTest2,(void**)&(v.pdispVal));
spBody->put_onbeforeunload(v);
您可能想查找下面的文章:
- 哪个高手用ATL写过DHTML的Behavior呀,使用ActiveX(十万火急)
- ATL实现的CDHtmlDialog模板类v103资源已更新,欢迎大家下载使用!
- 请教高手,在线等,基于CDHTMLDialog类的应用程序,如何动态改变页面上的图片?
- CDhtmlDialog无法把回车等键盘消息传给网页
- ATL实现的CDHtmlDialog模板类的external函数可以有返回值?
- CDHtmlDialog方法Navigate完成的标志?网页加载完毕的时机是什么?
- 如何判断CDHtmlDialog::Navigate已经完成?
- 使用CDHtmlDialog访问某网站有时会弹出提示对话框后自动登出,但用ie程序就不会,两者有何不同?
- ATL写的DHTML控件,里面的UI类使用连接点事件接口,但是触发不了
- CDHtmlDialog,显示某些网页时,提示脚本错误找不到对象,程序崩溃。。。