OLE SDK——框架界面(七):IOleInPlaceFrame::TranslateAccelerator

王朝网络·vc·作者佚名  2006-01-08
宽屏版  字体: |||超大  

IOleInPlaceFrame::TranslateAccelerator

当一个对象在位激活的时候,有意的为容器的框架翻译加速键。

HRESULT TranslateAccelerator(

LPMSG lpmsg, //指向结构

WORD wID //命令标识值

);

参数

lpmsg

包含键信息的MSG结构指针

wID

命令标识值在容器提供的加速表中对应的键。容器应该使用这个值替代重新翻译。

返回值

这个方法支持标准返回值E_INVALIDARG和E_UNEXPECTED,也支持下列:

S_OK

键被使用。

S_FALSE

键没有被使用。

注释

调用者注意

当加速键被为窗口(框架)故意的接收时,IOleInPlaceFrame::TranslateAccelerator方法通过OleTranslateAccelerator被间接的调用。

实现注意

容器应用程序应该执行它平常的加速处理,或直接使用wID,然后返回加速键是否被处理的指示。如果窗口是一个MDI应用程序,Windows的TranslateAccelerator调用失败,窗口可以调用Windows的TranslateMDISysAccel函数,正象一般的消息处理一样。

应该在翻译加速消息方面给在位(In-place)对象一个机会。然而,因为对象通过DLL对象应用程序实现不能拥有它们自己的消息处理机制,它们从容器的消息循环中接收它们的消息。要确保对象在翻译消息方面有了一个机会,一个容器应该总是在在它自己的加速翻译前,调用IOleInPlaceActiveObject::TranslateAccelerator。相反,一个可执行对象应用程序应该在调用TranslateAccelerator,TranslateMessage和DispatchMessage全失败后调用OleTranslateAccelerator

注意 你应该为容器定义加速表,这样它们将适当的工作,用对象应用程序做它们自己的加速键翻译。表格应该被象下列一样的定义:

"char", wID, VIRTKEY, CONTROL

这有更多的公共办法来描述键加速。这是最通用的描述加速键的方法。在在位(in-plane)会话期间,如果这种方法失败,将导制建丢失或发送到错误的对象。

快速信息

Windows NT: 3.1或更高版本。

Windows: Windows 95或更高版本。

Windows CE: 不支持。

Header: oleidl.h。

参见

OleTranslateAccelerator, IOleInPlaceActiveObject::TranslateAccelerator

Win32中的TranslateAccelerator,TranslateMessage,DispatchMessage,TranslateMDISysAccel

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
© 2005- 王朝网络 版权所有