共用方式為


IOleInPlaceFrame::TranslateAccelerator 方法 (oleidl.h)

轉譯用於容器框架的快速鍵按鍵,而物件就地使用中。

語法

HRESULT TranslateAccelerator(
  [in] LPMSG lpmsg,
  [in] WORD  wID
);

參數

[in] lpmsg

包含按鍵訊息之 MSG 結構的指標。

[in] wID

與容器提供的快速鍵資料表中對應的命令識別碼值。 容器應該使用此值,而不是再次翻譯。

傳回值

此方法會在成功時傳回S_OK。 其他可能的傳回值包括下列專案。

傳回碼 描述
S_FALSE
未使用按鍵。
E_INVALIDARG
指定的指標無效。
E_UNEXPECTED
發生意外錯誤。

備註

來電者的附注

收到用於容器 (框架) 時,OleTranslateAccelerator會間接呼叫IOleInPlaceFrame::TranslateAccelerator方法。

實作者的注意事項

容器應用程式應該執行其一般加速器處理,或直接使用 wID ,然後傳回 ,指出是否已處理按鍵加速器。 如果容器是 MDI 應用程式, 而 TranslateAccelerator 函式失敗,則容器可以呼叫 TranslateMDISysAccel 函式,就像其一般訊息處理一樣。

就地物件應該第一次有機會翻譯加速器訊息。 不過,由於 DLL 物件應用程式所實作的物件沒有自己的訊息幫浦,所以會從容器的訊息佇列接收其訊息。 為了確保物件第一次有機會翻譯訊息,容器應該一律呼叫 IOleInPlaceFrame::TranslateAccelerator ,再執行自己的加速器翻譯。 相反地,可執行檔的物件應用程式應該在呼叫TranslateAccelerator之後呼叫OleTranslateAccelerator,只有在這兩個轉譯函式都失敗時,才呼叫TranslateMessageDispatchMessage

您應該定義容器的快速鍵資料表,讓它們能夠與執行自己的快速鍵按鍵翻譯的物件應用程式正常運作。 資料表應定義如下。

"char", wID, VIRTKEY, CONTROL

這是描述鍵盤快速鍵的最常見方式。 若無法這麼做,可能會導致按鍵在就地會話期間遺失或傳送到錯誤的物件。

需求

   
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 oleidl.h

另請參閱

IOleInPlaceFrame

IOleInPlaceFrame::TranslateAccelerator

OleTranslateAccelerator

TranslateAccelerator

TranslateMDISysAccel