用VC来操作网页。。
DLG 方法
1.添加插件Microsoft Web Browser 控件。。用这个来显示网页。。
m_Web.Navigate("E://1.htms",NULL,NULL,NULL,NULL);
#import "C:/windows/system32/mshtml.tlb"
附上js测试函数
function fun()
{
alert("This is test !");
}
把以上函数放到 html中!
///////////////////////////////////////////////////////////////////
2。。。。
MSHTML::IHTMLDocument2Ptr spDoc(m_Web.get_Document()); if (spDoc) { IDispatchPtr spDisp(spDoc->GetScript()); if (spDisp) { OLECHAR FAR* szMember = L"fun"; DISPID dispid; HRESULT hr = spDisp->GetIDsOfNames(IID_NULL, &szMember, 1, LOCALE_SYSTEM_DEFAULT, &dispid); if (SUCCEEDED(hr)) { COleVariant vtResult; static BYTE parms[] = VTS_BSTR; COleDispatchDriver dispDriver(spDisp, FALSE); dispDriver.InvokeHelper(dispid, DISPATCH_METHOD, VT_VARIANT, (void*)&vtResult, parms,Null); } } }
//////////////////////////////////////////////////
把以上函数放在button中,单击按钮就能弹出一个对话框!!!
怎么样,实现了没有、、、、
SDI 方法
1。建立SDI文件,继承CHtmlView类。。
2 。使用同样的Html文件。。
3 。在菜单上建立一个菜单项,通过单击菜单来触发该网页的 JS函数
IHTMLDocumentPtr ipDocument = GetHtmlDocument(); IHTMLElementCollection *p; IDispatchPtr spDisp; ipDocument->get_Script(&spDisp); if (spDisp) { OLECHAR FAR* szMember = L"fun"; DISPID dispid; HRESULT hr = spDisp->GetIDsOfNames(IID_NULL, &szMember, 1, LOCALE_SYSTEM_DEFAULT, &dispid); if (SUCCEEDED(hr)) { COleVariant vtResult; static BYTE parms[] = VTS_BSTR; COleDispatchDriver dispDriver(spDisp, FALSE); dispDriver.InvokeHelper(dispid, DISPATCH_METHOD, VT_VARIANT, (void*)&vtResult, parms,NULL); } }
这样就能实现 SDI中操作网页了!!