ocx控件针对网页刷新和关闭分别进行区分处理

当ocx加载在网页上时,如果对网页执行F5刷新事件,ocx控件会销毁ocx的窗口类,但是ocx的APP类是不会销毁的

只有当网页被关闭时,才销毁app类

 

--------------------------------------

可能刚接触ocx开发对ocx控件窗口类和 ocx的app类有点不太明朗。其实很好区分:

如果你创建的是一个ATL 项目 比如你的名字是 EmotionOle 在你的工程项目里同样会有一个EmotionOle.h 的

文件里面的就是你的ocx控件窗口类(无窗体ocx控件同样);

在工程项目里有个 dllmain.h 文件,该文件就是ocx控件的app类;

给dllmain.cpp 文件的 app类:class CEmotionOleApp : public CWinApp{}; 添加一个析构函数,用以处理网页关闭时针对ocx的一些处理;

当然网页第一次加载时也会走该app类的 InitInstance(){}函数 ,网页被按F5刷新的时候也不会在重新去执行该函数,只有在网页被关闭。然后每次重新打开网页时才会执行。

 

ocx控件窗口类可以通过添加该接口  STDMETHOD(SetClientSite)(IOleClientSite *pClientSite); 通过对参数是否为null判断网页是否被刷新,来处理一些针对ocx控件窗口类该执行的一些操作。

在ocx控件窗口类中如果执行一些资源释放操作放在上面添加的SetClientSite接口里比放在ocx控件窗口类的析构函数里要更安全。

--------------------------------------

 

由以上特性就可以区分开来上层网页是执行了刷新还是执行了关闭,对于ocx控件感知区分很重要。

-------------------------------------------------------------------------------------------------------------------------

http://www.cnblogs.com/wainiwann/p/7059064.html

http://www.cnblogs.com/snben/archive/2012/09/25/2701125.html

posted @   阿风小子  阅读(86)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
点击右上角即可分享
微信分享提示