高分求助!!!===如何用VC全屏显示HTML=== 写一个基于HtmlView的程序,然后移掉菜单、工具栏等等,让视图全屏显示。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 回复人:mywater(在水一方) (2000-10-10 21:09:00) 得0分 我做了一个小例子,也不是很好://注:我手头没有VC,不过,对于COM来说,应该没有区别1,在CB中,Server面板上有封装了的IE,Word,Excel,Outlook等自动化对象,可供我们直接使用,不过,其中的个别控件在2000上,似乎有点问题,我的解决办法:在CB中,Remove 这些包,然后我们自己引入类型库,重建一套! 类型库是: Microsoft Internet Controls(Version 1.1) [c:\\winnt\system32\shdocvw.dll] 引入时,在ClassNames的Memo中,在每个雷名后都加一个1,防止和原来的类名冲突:TCppWebBrowser_V11TCppWebBrowser1TCppInternetExplorer1TCppShellBrowserWindow1TCppShellWindows1TCppShellUIHelper1TShellFavoritesNameSpace1TCScriptErrorList1TCppSearchAssistantOC1 编译时,可能出现错误,最简单的办法是把出错的语句注释掉,我检查过,这是几个IE的事件,我们基本用不着!如果,想用,就得改正这几个错误!就是,把参数独立出来,改成用指针调用!2,第二步,使用ICppShellWindow1,获得系统中所有的Internet Explorer 对象,包括文件夹和IE等! 检查是不是IE的办法是: GetApplicationName,看看是不是Explore.exe 还是.... 略去不写了! 是IE的,使用ICppInternetExplorer1对象连接到他,之后,就可以调用各种方法对这个IE进行控制了!窗体上,放着两个空件:.h: TCppShellWindows1 *SW; TCppInternetExplorer1 *IE;cpp://简单的例子: SW->Connect(); //debug: //获取 iCount=SW->Get_Count(); if(iCount<1) { ShowMessage("娘西皮,一个没有!"); return ; }; //我没做判断,直接连接到第一个实例上, //您应该处理的 TVariantInParam index(0); //把IE和实例连接 IE->ConnectTo(SW->Item(index)); //方法调用举例:获取URL WideString temp(IE->Get_LocationURL()); ShowMessage(temp); //设置全屏幕 //IE->Set_FullScreen(1); //执行OLE Command举例:运行Save As 菜单 //设置存储路径 TVariant *path=new TVariant("c:\\ttt"); //调用, IE->ExecWB( //OLE CMD ID Shdocvw_tlb::OLECMDID_SAVECOPYAS, //执行开关:不显示界面,不过似乎有点问题, //Save aS 对话框需要用户 安 确定 按钮 Shdocvw_tlb::OLECMDEXECOPT_DONTPROMPTUSER, path); delete path; //连接文档: //把文档连接到IE,说明参见 3 Doc->ConnectTo(IE->Get_Document()); Doc----????? 具体的使用,我没写,如果想在 这一级上处理,非常繁琐,您需要 处理每个集合,比如框架,图片, 脚本,等等!3:如果相对IE文档进行更深层次的控制还得在引入 Microsoft Html Object Library(Version .) [C:\\winnt\system32\mshtml.tlb] 注意:这个类型库包含了几百个接口,需要很长时间,不是死机! 使用IHTMLDocument对象ConnectTo 到IE的文档上,就可以对其进行操纵了!这个对象接口非常之多,参见MSDN集合更多,我也没用过!,看来只能试一试了!具体参见MSDN文档! 我写了一个小例子,安以上步骤,能调出IE 的Save As对话框,并且可以控制所有的现实属性,如是否全屏!注意:如果在您的机器上出现类没有注册,或根本就找不到这两个类型库,请安装IE5 回复人:hooligan(风) (2000-12-28 20:22:00) 得25分 用IWebBrowser2接口。IWebBrowser2* m_pMyWebBrowser;HRESULT hr;COleDispatchDriver dispIE;::CoInitialize(NULL);dispIE.CreateDispatch(CLSID_InternetExplorer);hr=dispIE.m_lpDispatch->QueryInterFace(IID_IWebBrowser2, reinterpret_cast<void**>(&m_pMyWebBrowser));if(FAILED(hr)) AfxMessageBox("Failed");else{ m_pMyWebBrowser->put_StatusBar(AFX_OLE_FALSE); m_pMyWebBrowser->put_ToolBar(AFX_OLE_FALSE); m_pMyWebBrowser->put_AddressBar(AFX_OLE_FALSE); m_pMyWebBrowser->put_Visible(AFX_OLE_TRUE);} 2 tlovexyj(炎龙) :你省省吧,现在时兴拿到答案不给分。 o faint~唉,何苦?分多何用,check point~ 没有得到该得的分的又何只你一个,唉………你说我有这个必要吗?tlovexyj,欢迎您,您的专家分:1388、可用分:3825、参与分:7454 我可是遵纪守法的好公民,马上~check point~ vc++ 调用 wmi的方法,参数问题 关于HTTP协议的问题 mschart作图问题 如何使用richEdit Control MID的问题 ★★★★★升三角了!!!!!!!!!散分☆☆☆☆☆ 如何得到对话框的指针? 求助,如何用VC实现显示一个注册表key下所有的value Explorer shell,怎样在右键菜单中去掉其他插件的菜单项。 向com高手请教 怎么用程序实现动态修改IP? < 请问:是用C++的fstream流生成文件对象呢,还是用CFile类生成文件对象好?
我做了一个小例子,也不是很好:
//注:我手头没有VC,不过,对于COM来说,应该没有区别
1,在CB中,Server面板上有封装了的IE,Word,Excel,Outlook等自动化对象,
可供我们直接使用,不过,其中的个别控件在2000上,似乎有点问题,我的解决办法:在CB中,Remove 这些包,然后我们自己引入类型库,重建一套!
类型库是:
Microsoft Internet Controls(Version 1.1)
[c:\\winnt\system32\shdocvw.dll]
引入时,在ClassNames的Memo中,在每个雷名后都加一个1,防止和原来的类名冲突:TCppWebBrowser_V11
TCppWebBrowser1
TCppInternetExplorer1
TCppShellBrowserWindow1
TCppShellWindows1
TCppShellUIHelper1
TShellFavoritesNameSpace1
TCScriptErrorList1
TCppSearchAssistantOC1 编译时,可能出现错误,最简单的办法是把出错的语句
注释掉,我检查过,这是几个IE的事件,我们基本用不着!
如果,想用,就得改正这几个错误!就是,把参数独立出来
,改成用指针调用!2,第二步,使用ICppShellWindow1,获得系统中所有的Internet Explorer 对象,包括文件夹和IE等!
检查是不是IE的办法是:
GetApplicationName,看看是不是Explore.exe 还是....
略去不写了!
是IE的,使用ICppInternetExplorer1对象连接到他,之后,就可以调用各种方法对这个IE进行控制了!窗体上,放着两个空件:
.h:
TCppShellWindows1 *SW;
TCppInternetExplorer1 *IE;cpp://简单的例子:
SW->Connect();
//debug:
//获取
iCount=SW->Get_Count();
if(iCount<1)
{
ShowMessage("娘西皮,一个没有!");
return ;
};
//我没做判断,直接连接到第一个实例上,
//您应该处理的
TVariantInParam index(0);
//把IE和实例连接
IE->ConnectTo(SW->Item(index)); //方法调用举例:获取URL
WideString temp(IE->Get_LocationURL());
ShowMessage(temp);
//设置全屏幕
//IE->Set_FullScreen(1); //执行OLE Command举例:运行Save As 菜单
//设置存储路径
TVariant *path=new TVariant("c:\\ttt");
//调用,
IE->ExecWB(
//OLE CMD ID
Shdocvw_tlb::OLECMDID_SAVECOPYAS,
//执行开关:不显示界面,不过似乎有点问题,
//Save aS 对话框需要用户 安 确定 按钮
Shdocvw_tlb::OLECMDEXECOPT_DONTPROMPTUSER,
path);
delete path;
//连接文档:
//把文档连接到IE,说明参见 3
Doc->ConnectTo(IE->Get_Document());
Doc----?????
具体的使用,我没写,如果想在
这一级上处理,非常繁琐,您需要
处理每个集合,比如框架,图片,
脚本,等等!
3:如果相对IE文档进行更深层次的控制还得在引入
Microsoft Html Object Library(Version .)
[C:\\winnt\system32\mshtml.tlb]
注意:这个类型库包含了几百个接口,需要很长时间,不是死机!
使用IHTMLDocument对象ConnectTo 到IE的文档上,
就可以对其进行操纵了!这个对象接口非常之多,参见MSDN
集合更多,我也没用过!,看来只能试一试了!具体参见MSDN
文档! 我写了一个小例子,安以上步骤,能调出IE 的Save As
对话框,并且可以控制所有的现实属性,如是否全屏!
注意:如果在您的机器上出现类没有注册,或根本就找不到
这两个类型库,请安装IE5
用IWebBrowser2接口。IWebBrowser2* m_pMyWebBrowser;
HRESULT hr;
COleDispatchDriver dispIE;::CoInitialize(NULL);
dispIE.CreateDispatch(CLSID_InternetExplorer);
hr=dispIE.m_lpDispatch->QueryInterFace(IID_IWebBrowser2,
reinterpret_cast<void**>(&m_pMyWebBrowser));
if(FAILED(hr))
AfxMessageBox("Failed");
else
{
m_pMyWebBrowser->put_StatusBar(AFX_OLE_FALSE);
m_pMyWebBrowser->put_ToolBar(AFX_OLE_FALSE);
m_pMyWebBrowser->put_AddressBar(AFX_OLE_FALSE);
m_pMyWebBrowser->put_Visible(AFX_OLE_TRUE);
}
唉,何苦?分多何用,check point~
tlovexyj,欢迎您,您的专家分:1388、可用分:3825、参与分:7454 我可是遵纪守法的好公民,马上~check point~