IOleInPlaceFrame::TranslateAccelerator 方法 (oleidl.h)
轉譯用於容器框架的快速鍵按鍵,而物件就地使用中。
語法
HRESULT TranslateAccelerator(
[in] LPMSG lpmsg,
[in] WORD wID
);
參數
[in] lpmsg
包含按鍵訊息之 MSG 結構的指標。
[in] wID
與容器提供的快速鍵資料表中對應的命令識別碼值。 容器應該使用此值,而不是再次翻譯。
傳回值
此方法會在成功時傳回S_OK。 其他可能的傳回值包括下列專案。
傳回碼 | 描述 |
---|---|
|
未使用按鍵。 |
|
指定的指標無效。 |
|
發生意外錯誤。 |
備註
來電者的附注
收到用於容器 (框架) 時,OleTranslateAccelerator會間接呼叫IOleInPlaceFrame::TranslateAccelerator方法。實作者的注意事項
容器應用程式應該執行其一般加速器處理,或直接使用 wID ,然後傳回 ,指出是否已處理按鍵加速器。 如果容器是 MDI 應用程式, 而 TranslateAccelerator 函式失敗,則容器可以呼叫 TranslateMDISysAccel 函式,就像其一般訊息處理一樣。就地物件應該第一次有機會翻譯加速器訊息。 不過,由於 DLL 物件應用程式所實作的物件沒有自己的訊息幫浦,所以會從容器的訊息佇列接收其訊息。 為了確保物件第一次有機會翻譯訊息,容器應該一律呼叫 IOleInPlaceFrame::TranslateAccelerator ,再執行自己的加速器翻譯。 相反地,可執行檔的物件應用程式應該在呼叫TranslateAccelerator之後呼叫OleTranslateAccelerator,只有在這兩個轉譯函式都失敗時,才呼叫TranslateMessage和DispatchMessage。
您應該定義容器的快速鍵資料表,讓它們能夠與執行自己的快速鍵按鍵翻譯的物件應用程式正常運作。 資料表應定義如下。
"char", wID, VIRTKEY, CONTROL
這是描述鍵盤快速鍵的最常見方式。 若無法這麼做,可能會導致按鍵在就地會話期間遺失或傳送到錯誤的物件。
需求
最低支援的用戶端 | Windows 2000 專業版 [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
目標平台 | Windows |
標頭 | oleidl.h |