OLE SDK——架構介面(七):IOleInPlaceFrame::TranslateAccelerator

來源:互聯網
上載者:User
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。相反,一個可執行對象應用程式應該在調用TranslateAcceleratorTranslateMessageDispatchMessage全失敗後調用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

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.