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

Dav*_*nan 6 windows winapi

我正在使用我的应用程序创建图标LoadIconWithScaleDown().CreateIconFromResourceEx()如果首选功能不可用,我也会回过头来.

DestroyIcon()各州的文件:

只需要为使用以下函数创建的图标和游标调用DestroyIcon:CreateIconFromResourceEx(如果在没有LR_SHARED标志的情况下调用),CreateIconIndirect和CopyIcon.请勿使用此功能销毁共享图标.只要加载它的模块保留在内存中,共享图标就有效.以下函数获取共享图标.

  • LoadIcon
  • LoadImage(如果使用LR_SHARED标志)
  • CopyImage(如果使用LR_COPYRETURNORG标志且hImage参数是共享图标)
  • CreateIconFromResource
  • CreateIconFromResourceEx(如果使用LR_SHARED标志)

注:我不是传递LR_SHAREDCreateIconFromResourceEx(); 也许我应该.

我想知道的是,我是否需要打电话DestroyIcon()给用的图标LoadIconWithScaleDown()

kpr*_*bst 2

我会说是的,因为根据文档,您返回的 HICON 似乎并未共享。Windows 显然不希望你销毁共享句柄的图标,但这里的情况并非如此,如果你回退到另一个采用 LR_SHARED 的函数,但你没有传递该标志,那么这意味着你的进程拥有该图标句柄,使用完毕后应将其销毁。