调用GetSystemMenu()后清理

时间:2010-01-05 01:58:41

标签: .net windows winapi

我正在使用Florian's wrapper class来调用GetSystemMenu()将自定义菜单项添加到应用程序的系统菜单中。

我只是想知道通过调用GetSystemMenu或其他菜单项返回的句柄是否需要清理。我没有看到任何需要调用CloseHandle()或类似的东西,所以我目前的假设是不需要这样做。

2 个答案:

答案 0 :(得分:1)

你不应该担心它。

查看DestroyMenu的MSDN文档:

  

应用程序关闭时,会自动销毁分配给窗口的菜单。

通常,Windows应在表单关闭时销毁菜单,这反过来会破坏您的自定义菜单项。

答案 1 :(得分:0)

我看过包装纸,我的直觉是:

SystemMenu.cs中使用的句柄让我怀疑......

private IntPtr m_SysMenu = IntPtr.Zero; // Handle to the System Menu

该句柄,代码中没有任何地方被明确关闭或释放......这使我认为代码中应该有一个IDisposable实现来关闭/释放句柄......

您怎么看?

希望这有帮助, 最好的祝福, 汤姆。