VB6 自定义浏览器 Webbrowser 键盘失效问题.
在公司的项目中需要自定义浏览器.
我参照了LE浏览器的代码,感谢作者.如果您没有看过那份代码,可以不必理会下面关于LE浏览器异同的部分.
我是这样做的.
定义了一个cWebbrowser,在这个类中实现olelib.IOleClientSite,olelib2.IOleInPlaceSite这两个接口.在浏览器窗体(假设是frmWebbrowser)这里我直接在一个PictureBox中画了一个Webbrowser控件,与LE浏览器有所差别.),窗体Form_Load初始化时将Webbrowser与cWebbrowser进行绑定,并将Webbrowser的窗口设置为PictureBox.功能做好了,运行正常.
但是出现的问题是CTRL,TAB,ALT这些键都失效了(不是所有键),对Webbrowser的Sendkeys也无效..
我尝试的解决过程:
首先我尝试将frmWebbrowser中的cWebbrowser相关代码去掉,此时Webbrowser按键生效.说明键盘失效与cWebbrowser有关.然后我将cWebbrowser相关代码恢复,再陆续将对Webbrowser中Document对象的一些相关操作屏蔽,发现那些键仍然失效.所以基本确定是cWebbrowser出的问题.
一开始我认为是没有实现olelib.IDocHostUIHandler,olelib.IDocHostShowUI,于是将这两个接口也实现,下断点到IDocHostUIHandler_TranslateAccelerator,但是在运行过程中无论我怎样按键都未执行到这里.而且我按键时,未能触发任何代码事件.
而我在LE浏览器中,将olelib.IDocHostUIHandler,olelib.IDocHostShowUI两个接口去掉,LE浏览器的按键仍有效.说明按键失效与这两个接口无关.
现在我就不清楚,到底是什么原因让那些控制键失效的,该如何恢复.
CSDN居然没有标签功能,郁闷,只好把标题当标签使了,希望其他人可以方便地搜索到.
[解决办法]
俺来接分!
[解决办法]