2017-02-07 28 views
1

現在我做我需要釋放的IntPtr被Win32 API或WindowInteropHelper

IntPtr hwnd = new WindowInteropHelper(this).Handle; 
IntPtr menuHandle = GetSystemMenu(hwnd, false); 

WindowInteropHelper是內置的,GetSystemMenu是WIN 32 API

[DllImport("user32.dll")] 
static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert); 
獲取窗口和系統菜單的手柄處理獲得性

我的問題是,我是否需要釋放任一手柄?如果我這樣做,我應該怎麼做,什麼時候該做?

回答

1

它是對託管窗口的引用,因此在窗口關閉時釋放內存。 你不需要釋放指針。

也看在這樣的回答:WindowInteropHelper.Handle — do I need to release it?

同樣,還包括以下指令越來越已經創建和窗口生命週期中的管理菜單中的複製/指針。

+0

GetSystemMenu一個怎麼樣 – Steve

+0

我已經更新了我的答案 –