MFC-在创建Iwebbrowse控件后,为什么在调用SetUIHandle后内部的网页元素无法输入字符?
我实现了IDocHostUIHandler,想做一些特殊处理,但发现browse控件设置SetUIHandle后变得无法编辑了,无法接受字符,什么原因啊?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
我实现了IDocHostUIHandler,想做一些特殊处理,但发现browse控件设置SetUIHandle后变得无法编辑了,无法接受字符,什么原因啊?
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(2)
IDocHostUIHandler键盘相关的接口只有TranslateAccelerator了,你可以看一下你的TranslateAccelerator如何实现的。
我查了一下MSDN,应该是TranslateAccelerator的原因,这是TranslateAccelerator的描述:
When you use accelerator keys, such as TAB, you might want to override the default host behavior. This example shows how to disable the default tabbing behavior of the host. The code returns S_OK to indicate that the message was handled.
黑色部分说明了问题,你应该缺省都返回了S_OK,导致browser丢充了所有键盘输入,所以会无法输入字符。
你的TranslateAccelerator实现有问题。看下面我的实现方式:
如果返回S_OK相当于过滤掉这个字符消息,不让其继续下传了,所以不响应你的输入了。