得到IOleInPlaceActiveObject接口,IOleInPlaceActiveObject::TranslateAccelerator(&msg);

(2)是否WebBrowser自己处理了加速键?

我忽略了这个点。

MFC实现过程:

1、在消息循环中处理TranslateAccelerator之前转发消息。

具体操作是。得到IOleInPlaceActiveObject接口,IOleInPlaceActiveObject::TranslateAccelerator(&msg);向控件发消息。

2、如果控件处于击活。OLEIVERB_UIACTIVATE,控件只在这种状态下接受加速键。

3、要注意的是,如果实现了IDocHostUIHandler接口,返回S_FALSE不处理调用控件加速键,S_OK则不执行,这是倒数第二次补救机会.

4、最后一次处理机会那就是如果你实现了IOleInPlaceActiveObject,可以设置自己的加速键当然,因为是自定义的,你必须实现功能函数。

飞鸽传书


你可能感兴趣的:(mfc,WebBrowser)