MFC ocx IE中应用相关问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC ocx IE中应用相关问题相关的知识,希望对你有一定的参考价值。

一、IE中调用控件时碰到过的问题

1、控件发消息让IE退出
::PostMessage(m_hwnd, WM_DESTROY, 0, 0);      //m_hwnd为ie的窗口句柄
::PostMessage(m_hwnd, WM_CLOSE, 0, 0);        //但是对于整个ie都会退出,而不仅仅是关闭该选项卡。 

 

2、去掉IE滚动条,并且让控件充满整个IE客户区的方法如下。

控件无法覆盖整个客户区的原因是因为IE页面有默认的边距,将其设为0即可。可以让控件覆盖掉IE的滚动条,而不用在body中将其scroll="no"。

html代码如下:

<style type="text/css">
<!--
body {
margin-left: 0px;
margin-top: 0px;
margin-right: 0px;
margin-bottom: 0px; 
} 
-->
</style>

<body style="overflow:hidden"> 
<OBJECT classid="clsid:22841351-AA11-4288-9FCD-F6CF96973265" id=HWPdfReader width=100% height=100%></object>

  

3、参考链接:http://blog.sina.com.cn/s/blog_57421ff80100dc0q.html

 ( 3.1) 网页刷新 

    当ocx加载在网页上时,如果F5刷新, ocx控件会销毁ocx的窗口类,但是ocx的app类是不销毁的。只有当网页关闭时,才销毁app类。

        当app类中有成员变量时,请注意刷新回来后变量的值还是刷新前的值。

       利用刷新app类的不析构恢复刷新前的状态:可在控件的app类中保存刷新前的值,刷新后恢复刷新前的状态。

(3.2)一个网页中加载2次(或者多次)ocx控件

     同一个进程加载2次控件时,app类调用1次,ocx窗口类调用2次。也就是说2个控件实例使用的是同一个app类的实例,只是有各自的窗口。这时如果app类中有成员变量,值得注意。

以上是关于MFC ocx IE中应用相关问题的主要内容,如果未能解决你的问题,请参考以下文章

从 .Net Dll 创建 .Ocx 文件

JavaFX 可以调用和嵌入 OCX 组件吗

窗体调用 OCX 的使用方法(MFC,WINFORM)

ocx控件怎么打开

IE浏览网页flash.ocx控件加载失败 怎么办啊啊?

vue调用C++打包的ocx控件遇到的一些问题