OLE SDK——架構介面(五):IOleInPlaceFrame::SetMenu

來源:互聯網
上載者:User

IOleInPlaceFrame::SetMenu

在視窗架構容器物件被啟用的位置安裝複合菜單。

HRESULT SetMenu(
HMENU
hmenuShared, //複合菜單控制代碼
HOLEMENU holemenu, //菜單描述項控制代碼
HWND hwndActiveObject //對象的視窗控制代碼
);

參數

hmenuShared
通過調用 IOleInPlaceFrame::InsertMenus和Windows InsertMenu函數建造的菜單控制代碼。
holemenu
OleCreateMenuDescriptor函數返回的菜單描述符的控制代碼。
hwndActiveObject
擁有對象的視窗及接收菜單訊息,命令和加速鍵的視窗的控制代碼。

傳回值

這個方法支援標準傳回值E_INVALIDARG和E_UNEXPECTED,也支援下列:

S_OK
方法被成功完成。

注釋

調用者注意

對象調用IOleInPlaceFrame::SetMenu去告訴容器通過IOleInPlaceFrame::InsertMenus去安裝複合菜單結構。

實現注意

一個SDI容器的這個方法的實現應該調用Windows的SetMenu函數。一個MDI視窗應該發送一個WM_MDISETMENU訊息,使用hmenuShared作為菜單去安裝。容器應該調用OleSetMenuDescriptor去安裝OLE調度代碼。

當不活動時,容器必須調用IOleInPlaceFrame::SetMenu,指定NULL去移去共用菜單。這協助重繪已最小化的視窗。容器也應該調用OleSetMenuDescriptor,指定NULL去解下調度代碼。最後,對象應用程式調用OleDestroyMenuDescriptor去釋放資料結構。

注意  當執行IOleInPlaceFrame::SetMenu時,不能調用Windows的PeekMessageGetMessage函數,或一個對話方塊。如果這樣做了,系統可以死機。在SetMenu中可以調用的OLE介面方法和函數還有更多的限制。

快速資訊

  Windows NT: 3.1或更高版本。
  Windows: Windows 95或更高版本。
  Windows CE: 不支援。
  Header: oleidl.h。

參見

IOleInPlaceFrame::InsertMenus, OleSetMenuDescriptor, OleDestroyMenuDescriptor

Win32中PeekMessageGetMessage

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.