(2)是否WebBrowser自己处理了加速键?
我忽略了这个点。
MFC实现过程:
1、在消息循环中处理TranslateAccelerator之前转发消息。
具体操作是。得到IOleInPlaceActiveObject接口,IOleInPlaceActiveObject::TranslateAccelerator(&msg);向控件发消息。
2、如果控件处于击活。OLEIVERB_UIACTIVATE,控件只在这种状态下接受加速键。
3、要注意的是,如果实现了IDocHostUIHandler接口,返回S_FALSE不处理调用控件加速键,S_OK则不执行,这是倒数第二次补救机会.
4、最后一次处理机会那就是如果你实现了IOleInPlaceActiveObject,可以设置自己的加速键当然,因为是自定义的,你必须实现功能函数。