一、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类中有成员变量,值得注意。
时间: 2024-11-07 18:09:22