读书人

MFC怎么传递参数到html

发布时间: 2013-09-18 14:17:40 作者: rapoo

MFC如何传递参数到html
我在对话框中用了一个WebBrowser控件
#include "explorer1.h"
CExplorer1 m_browser;
m_browser.Navigate(URL,NULL, NULL, NULL, NULL);
我已经写好一个html文件,里面有个参数X,我怎么在MFC中把参数值传递给html中的X
传递参数 webbrowser html mfc 对话框
[解决办法]
如果是javascript里面的变量的话,那就可以用IHTMLDocument 方法中的get_Script获得javascript接口指针,再用Invoke方式调用赋值给X
[解决办法]
WebBrowser控件中有一个Document之类的方法,调用这个方法就能得到一个IDispatch接口指针,然后再用QueryInterface(IID_IHTMLDocument..)获取IHTMLDocument接口指针
[解决办法]

   IHTMLDocument *doc = NULL;   

LPDISPATCH lpDis = m_Web.get_Document();
HRESULT hr = lpDis->QueryInterface(IID_IHTMLDocument, (void **)&doc);

if(FAILED(hr)) return;

IDispatch *pdisScript = NULL;
hr=doc->get_Script(&pdisScript);


doc->Release();

if( NULL != pdisScript )
{
OLECHAR FAR* sdoTest = L"doTest"; //页面的javascript的doText函数

DISPID dispid;

HRESULT hr=pdisScript->GetIDsOfNames(IID_NULL,&sdoTest,1,LOCALE_SYSTEM_DEFAULT,&dispid);

if(FAILED(hr)) return;

DISPPARAMS dispparams;
memset(&dispparams, 0, sizeof dispparams);



pdisScript->Invoke(dispid,IID_NULL,0,DISPATCH_METHOD,&dispparams,NULL,NULL,NULL);
pdisScript->Release();
}


大概就是这样了
[解决办法]
m_browser.Navigate("javascript:a();",NULL, NULL, NULL, NULL);
[解决办法]

这个用法比较取巧哈。最好还是通过获取script的接口来实现。
[解决办法]
引用:
m_browser.Navigate("javascript:a();",NULL, NULL, NULL, NULL);

我也想问这个问题,如果传递参数而不是调用函数,应该怎么编写。

读书人网 >VC/MFC

热点推荐