1. 程式人生 > >MFC ocx IE中應用相關問題

MFC ocx IE中應用相關問題

如果 選項卡 原因 -h spa 問題 tom 刷新 cls

一、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中應用相關問題