如果我用LoadIconWithScaleDown制作它,是否需要调用DestroyIcon?

时间:2011-03-11 17:39:56

标签: windows winapi

我正在使用LoadIconWithScaleDown()在我的应用中创建图标。如果首选功能不可用,我也会回到CreateIconFromResourceEx()

DestroyIcon()州的文档:

  

只需要打电话   DestroyIcon用于图标和游标   使用以下功能创建:   CreateIconFromResourceEx(如果被调用   没有LR_SHARED标志),   CreateIconIndirect和CopyIcon。做   不要用这个功能来摧毁一个   共享图标。共享图标有效   只要是它的模块   加载保留在内存中。该   以下函数获取共享   图标。

     
      
  • LoadIcon
  •   
  • LoadImage (如果您使用LR_SHARED标志)
  •   
  • CopyImage (如果您使用的话)   LR_COPYRETURNORG标志和   hImage参数是一个共享图标)
  •   
  • CreateIconFromResource
  •   
  • CreateIconFromResourceEx (如果您使用的话)   LR_SHARED标志)
  •   

注意:我没有将LR_SHARED传递给CreateIconFromResourceEx();也许我应该。

我想知道的是,我是否需要为使用DestroyIcon()制作的图标致电LoadIconWithScaleDown()

1 个答案:

答案 0 :(得分:2)

我会说是的,因为你回来的HICON似乎没有根据文档分享。 Windows显然不希望你销毁其句柄共享的图标,但这不是这种情况,如果你回退到另一个需要LR_SHARED的函数,但你没有传递标记,那么这意味着你的进程拥有图标处理,你应该在使用它时将其销毁。