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

gugu99發表於2008-05-28
OLE SDK——框架介面(五):IOleInPlaceFrame::SetMenu (轉)[@more@]

IOleInPlaceFrame::SetMenu


在視窗容器被啟用的位置複合選單。

HRESULT SetMenu(
HMENU
hmenuShared, //複合選單控制程式碼
HOLEMENU holemenu, //選單描述符控制程式碼
HWND hwndActive //物件的視窗控制程式碼
);


引數



hmenuShared
透過IOleInPlaceFrame::InsertMenusInsertMenu建造的選單控制程式碼。
holemenu
語言/VISUAL%20MSDN/COM/參考/介面/IOleInPlaceFrame/3_2uk2.htm">OleCreateMenuDescriptor函式返回的選單描述符的控制程式碼。
hwndActiveObject
擁有物件的視窗及接收選單訊息,命令和加速鍵的視窗的控制程式碼。

返回值


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


S_OK
方法被成功完成。

註釋


呼叫者注意

物件呼叫IOleInPlaceFrame::SetMenu去告訴容器透過IOleInPlaceFrame::InsertMenus去安裝複合選單結構。


實現注意

一個SDI容器的這個方法的實現應該呼叫Windows的SetMenu函式。一個MDI視窗應該傳送一個WM_MDISETMENU訊息,使用hmenuShared作為選單去安裝。容器應該呼叫去安裝OLE排程程式碼。


當不活動時,容器必須呼叫IOleInPlaceFrame::SetMenu,指定NULL去移去共享選單。這幫助重繪最小化視窗。容器也應該呼叫OleSetMenuDescriptor,指定NULL去解下排程程式碼。最後,物件應用呼叫去釋放資料結構。


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


資訊


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


參見


, ,


PeekMessageGetMessage


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10748419/viewspace-1004738/,如需轉載,請註明出處,否則將追究法律責任。

相關文章