开发日志
21:44 2006-12-12
焦点问题,这些天使用过程没发现有什么异常,权当没问题.把shift+tab的效果也加上去了.
又发现关闭后还在运行,未知原因,继续观察.
0:27 2006-12-3
焦点问题,大概解决了,测试ing
webbrowser对象释放相关问题,原来还有个cScaleWebImage的东东需要处理
22:10 2006-11-26
最近在搞(键盘)焦点问题,发现有很多问题,理想状态下的应该如下,
用tab(或shift+tab)键可以遍历应用程序界面所有的元素,目前仅限于在地址栏,搜索栏及网页中转移;
键盘焦点应该能立即转移到新建的页面中,切换页面时也能自动转移到当前页面,当焦点在地址栏或搜索栏时,焦点不做改变;
当程序重新变为活动窗口时,焦点应该能返回上次为活动窗口时的位置
0:53 2006-10-22
之前发现了几个严重问题:内存不会释放;浏览某些页面时内存占用突然猛增(100-200M);有些时候程序关闭后,窗口关闭了,但进程还存在.
然后发现,
问题原因:
那些问题的核心是关闭页面的时候并没有正确卸载掉webbroeser control, 而仅仅是将其当作普通窗口一样,以为关闭父窗口后,子窗口就能自然的关闭掉了,这里也确实是关闭掉了,但这是个com对象,除了显示出来的部分,还有很多数据占着内存,于是就出现了那样的问题,估计那3个问题都是因为这个而起。
解决:
找到正确的卸载代码,IOleObject.Close,原来有这么个东西啊,一直都不知道,还要.SetClientSite Nothing.
验证:
内存不能释放的问题似乎是解决了,其他2问题有待测试。
一些思考疑问:
做了用了这么久,竟然就没想到应该这样去卸载webbrowser control,好失败,有点不合常理,以后一定注意。
2:16 2006-8-18
插件增加支持ILEEvent接口,可以响应一些事件,例如ActiveWindow,在改变当前页面时发生.同时使支持ie插件成为可能(通过插件实现)
16:29 2006-8-11
增加了消息栏会在弹出页面或对话框被屏蔽时显示出来.但很简陋
0:03 2006-8-9
增加了屏蔽网页对话框功能(xp sp2或以上)
使用INewWindowManager接口即可,但,vb总是有那么些缺陷,vb要返回这种函数值,好像只有err.raise一种方法,而在这里,不起作用.被迫用vc写.然而问题又来了,我希望用atl写的组件在被调用EvaluateNewWindow时能够发生一个event,但最后发现在这种情况下(被调用EvaluateNewWindow时),这个组件在vb中使用时无法触发它发出的event,于是被迫绕弯来解决.
可恶...
21:58 2006-7-19
n久前就看了篇关于"正确地设置和转移焦点"的文章(http://blog.csdn.net/CathyEagle/archive/2006/05/29/762468.aspx),于是着手处理,结果发现不是那么简单,直到今天才基本实现了,按tab键可以使焦点在工具栏(目前是地址栏,搜索栏)与webbrowser中转移,暂时不支持shift+tab的逆序转移焦点,暂时感觉设计上似乎有问题,以后会增加侧边栏的焦点转移
补上2006-5-11的信息
看了http://blog.csdn.net/CathyEagle/archive/2006/04/25/677425.aspx的文章,实现了完美拖拽,在实现了程序自定义拖拽行为的同时也保留了ie原有的拖拽行为.
原来实现起来颇简单,但以前竟没想到,真是...
21:07 2006-5-9
原来是需要INewWindowManager才能拦截到对话框,不过出了点问题,不知为何非法操作.
发现当不是使用ie收藏夹路经时,使用"添加到收藏夹"时就有问题了,显示的路经还是ie的收藏夹路经,而非自己设定的那个.
后来采用DoAddToFavDlg,可以解决该问题,只是不太完美,不过也可以了.
真是奇怪,一直以来竟然忽略了IDocHostUIHandler.GetDropTarget的首参数,这个参数是ie缺省IDropTarget接口指针,只要将其保存下来就可以实现完美的拖拽,该使用ie默认的拖拽行为时就使用.
参考自,http://blog.csdn.net/cathyeagle/,有许多非常棒关于ie编程的文章
23:16 2006-4-15
改用CrCom.dll来创建com对象,简化了代码,取消了两个vboost的引用
在研究UxTheme.dll的用法...
21:49 2006-4-14
修改了cCallByName,执行类型(内置命令,插件命令等)用一个变量表示,每种类型要执行的命令也有个变量表示.
发现在xp下如果使用了manifest文件,工具栏按钮会显示不正常,文字会偏向左边,不知如何解决.
原来可以用SetWindowTheme来打开或关闭某个控件是否显示主题式样.
本来以为newwindow3(xp sp2)可以捕获到网页对话框,怎知不行,不知确实是不行还是有些地方没搞好,郁闷
11:45 2006-2-1
要实现原来的脚本插件,sendkey插件,侧边栏html的功能,需要另外写个插件来实现.考虑到这些应该算是比较又有的插件,可能会使用vc来写.
天啊,好像不是那么简单啊
11:07 2006-1-27
插件系统基本改写完毕,编写插件只需 Implements LEPluginLib.ILEplugin ,然后再根据需要通过implement ILEpluginCmd,ILEpluginMenu,ILEpluginToolband,ILESideBand来添加LE相应的功能.
发现cCallByName必须重写
1:07 2006-1-13
准备重写插件系统,不再区分侧边栏,命令,工具栏等插件类型,也没有dll,script,exe等等类型的插件,只有com型的插件