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类中有成员变量,值得注意。

时间: 2024-11-07 18:09:22

MFC ocx IE中应用相关问题的相关文章

MFC OCX 事件 / 属性 / 接口参数相关小结

1.事件 1.1 事件的添加 控件的事件一般都是由对外的接口引发.事件应该是属于窗口的,所以在Ctrl类上单击右键->添加. 事件函数的名字就是事件名称,参数就是在添加事件时候设置的参数.控件里边通过参数将结果给了事件函数,从而将值传出. 参考链接:http://blog.csdn.net/wd_cloud/article/details/40893033 1.2 子线程中事件的触发传出 //define   a   custom   message:         a)     #defin

MFC截图和界面刷新相关问题

问题描述: 就是首先用CDC来截图,保存图片的路径通过dlg窗体来手动设置并传入.可是截下来的图片就会连带那个对话框也截图下来. 就是这样,我想截后面那个图,前面这个对话框是要传入一个图片保存路径,可是连这个框也截下来了,就是点击确定后,那个框还没有来得及消失,就截图了, 见图片; 部分代码: 解决方案: 涉及到的函数有: BOOL UpdateWindow(HWND hWnd // 窗口的句柄); 如果窗口更新的区域不为空,UpdateWindow函数通过发送一个WM_PAINT消息来更新指定

MFC dialog程序中加入OpenGL窗体

<MFC dialog中加入OpenGL窗体> 最近学习了如何在MFC对话框程序中加入OpenGL窗体的方法,在这里将自己的实现过程归纳一下. 步骤零: 加入PictureControl控件 新建MFC对话框程序,删除对话框上的按钮控件的Label控件,然后向窗体添加PictureControl控件,作为绘制的窗体. 将该控件的ID设置为:IDC_RENDER 步骤一: 加入OpenGL的lib文件和头文件 在项目上单击右键,添加OpenGL的lib文件,freeglut_static.lib

C语言中随机数相关问题

用C语言产生随机数重要用到rand函数.srand函数.及宏RAND_MAX(32767),它们均在stdlib.h中进行了声明. int rand(void);//生成一个随机数 voidsrand(unsigned int seed); //为rand设置"种子"的值 srand()就是给rand()提供种子seed,如果srand每次输入的数值是一样的,那么每次运行产生的随机数也是一样的.通常的做法是以这样一句代码: srand((unsigned)time(NULL)); 来取

mfc视类中错误:IntelliSense: declaration is incompatible with。。。解决方案

基本情况是我自己写了一个类: class CDib {....} 然后在mfc自动生成的"工程名Dlg.cpp"中使用类CDib,我的工程名是MfcPictureProcessing,所以类是class CMfcPictureProcessingDlg,下面是视图类.h文件里: class CMfcPictureProcessingDlg: public CDialogEx { ... CDib *Dlgdib; CPalette* CreateBitmapPalette(CDib *

VS2010的MFC对话框程序中添加菜单栏的过程

VS2010的MFC对话框程序中添加菜单栏的过程 最近在看一个用MFC写的界面的项目的代码,在代码和界面中一直没有看到关于菜单控件是如何添加进对话框的,于是就百度了下.结果,与其它控件(Button等)添加的方式不一样: VS2010的MFC对话框程序中添加菜单栏的过程大致分了这五步. 一.将Menu加入Resource视图中 在WorkSpace中的Resource视图下,在左边目录的任意位置上,先右键-->选择Insert Resource(插入资源)选项,在弹出的对话框中选择Menu以后,

补充:sql server 中的相关查询、case函数

相关查询(在同一个表中) 相关查询类似子查询,但是又不同于子查询:子查询中的子条件可以单独查出数据,但是相关查询的子条件不能查处数据.(可以理解成C#中for的穷举法,第一个for走一个,第二个for走一圈,在相关查询中,括号内的数据只有几个,外面的查询有全部的数据,每个数据到括号中去比较是否合适) 格式: select * from 表名1 as a where a.列名 关系表达式或逻辑运算符 ( select * from 表名1 as b where a.相关列名1 = b.相关列名1

在MFC对话框程序中使用加速键

新建一个基于对话框的工程,添加一个按钮,修改按钮ID,这里为ID_BTN_OPENFILE,为按钮添加消息响应事件,这里我打开文件保存对话框: void CAccelDlg::OnBtnOpenfile() { // TODO: Add your control notification handler code here CFileDialog dlg (TRUE); dlg.DoModal (); } 为工程添加一个加速键资源,添加一条,注意ID要和按钮的ID相同,只有这样才能产生关联 为主

理解CSV文件以及ABAP中的相关操作

在很多ABAP开发中,我们使用CSV文件,有时候,关于CSV文件本身的一些问题使人迷惑.它仅仅是一种被逗号分割的文本文档吗? 让我们先来看看接下来可能要处理的几个相关组件的词汇的语义. Separator:两个字段之间的界线,在CSV文件中即是“,”. Delimiter:这种符号的开端和结束,代表了某种东西的界限.举个例子“测试字符串”有两个delimiters,即两个双引号.在很多逗号需要成为文本的情况下,这些CSV文件会使用双引号作为Delimiter. Terminator : 代表片段