写一个基于HtmlView的程序,然后移掉菜单、工具栏等等,让视图全屏显示。

解决方案 »

  1.   

     回复人: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_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   
      

  2.   

    回复人: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);
    }
     
      

  3.   

    2 tlovexyj(炎龙) :你省省吧,现在时兴拿到答案不给分。
      

  4.   

    o faint~
    唉,何苦?分多何用,check point~
      

  5.   

    没有得到该得的分的又何只你一个,唉………你说我有这个必要吗?
    tlovexyj,欢迎您,您的专家分:1388、可用分:3825、参与分:7454 我可是遵纪守法的好公民,马上~check point~