LoadImageA 函数 (winuser.h)
加载图标、光标、动画光标或位图。
语法
HANDLE LoadImageA(
[in, optional] HINSTANCE hInst,
[in] LPCSTR name,
[in] UINT type,
[in] int cx,
[in] int cy,
[in] UINT fuLoad
);
参数
[in, optional] hInst
类型: HINSTANCE
包含要加载的图像的 DLL 或可执行文件 (.exe) 的模块的句柄。 有关详细信息,请参阅 GetModuleHandle。 请注意,从 32 位 Windows 开始,实例句柄 (HINSTANCE) ,例如 由 WinMain 的系统函数调用公开的应用程序实例句柄,而模块句柄 (HMODULE) 也是如此。
若要 (图标、光标或位图文件) 加载预定义图像或独立资源,请将此参数设置为 NULL。
[in] name
类型: LPCTSTR
要加载的图像。
如果 hInst 参数为非 NULL 且 fuLoad 参数省略 LR_LOADFROMFILE, 则 name 指定 hInst 模块中的图像资源。
如果要按名称从模块加载图像资源, 则 name 参数是指向包含映像资源名称的以 null 结尾的字符串的指针。
如果要从模块按序号加载图像资源,请使用 MAKEINTRESOURCE 宏将图像序号转换为可传递给 LoadImage 函数的形式。
如果 hInst 参数为 NULL 且 fuLoad 参数省略 LR_LOADFROMFILE 值并包含 LR_SHARED,则 名称 将指定要加载的预定义图像。
预定义的图像标识符在 中 Winuser.h
定义,并具有以下前缀:
前缀 | 含义 |
---|---|
OBM_ | OEM 位图。 使用 MAKEINTRESOURCE 宏传递这些。 |
OIC_ | OEM 图标。 使用 MAKEINTRESOURCE 宏传递这些。 |
Ocr_ | OEM 游标。 使用 MAKEINTRESOURCE 宏传递这些。 |
IDI_ | 标准图标 |
Idc_ | 标准游标 |
若要将 OEM 图像标识符常量传递给 LoadImage 函数,请使用 MAKEINTRESOURCE 宏。 例如,若要加载OCR_NORMAL游标,请将 作为 name 参数传递MAKEINTRESOURCE(OCR_NORMAL)
,将 NULL 作为 hInst 参数传递,并将LR_SHARED作为标志之一传递给 fuLoad 参数。
如果 hInst 参数为 NULL 且 fuLoad 参数包含LR_LOADFROMFILE值,则 name 是包含独立资源 (图标、光标或位图文件) 的文件的名称,例如 。 c:\myicon.ico
有关详细信息,请参阅下面的“备注”部分。
[in] type
类型: UINT
要加载的图像的类型。
此参数可能是以下值之一:
值 | 含义 |
---|---|
IMAGE_BITMAP | 加载位图。 |
IMAGE_CURSOR | 加载游标。 |
IMAGE_ICON | 加载图标。 |
[in] cx
类型: int
图标或光标的宽度(以像素为单位)。 如果此参数为零且 fuLoad 参数 为LR_DEFAULTSIZE,则函数使用 SM_CXICON 或 SM_CXCURSOR 系统指标值来设置宽度。 如果此参数为零且未使用 LR_DEFAULTSIZE ,则函数使用实际资源宽度。
[in] cy
类型: int
图标或光标的高度(以像素为单位)。 如果此参数为零且 fuLoad 参数 为LR_DEFAULTSIZE,则函数使用 SM_CYICON 或 SM_CYCURSOR 系统指标值来设置高度。 如果此参数为零且未使用 LR_DEFAULTSIZE ,则函数使用实际资源高度。
[in] fuLoad
类型: UINT
此参数可使用以下一个或多个值。
返回值
类型: HANDLE
如果函数成功,则返回值是新加载的图像的句柄。
如果函数失败,则返回值为 NULL。 要获得更多的错误信息,请调用 GetLastError。
注解
如果 IS_INTRESOURCE (名称) 为 TRUE,则 name 指定给定资源的整数标识符。 否则,它是指向以 null 结尾的字符串的指针。 如果字符串的第一个字符是井号 (#) ,则其余字符表示一个指定资源的整数标识符的十进制数。 例如,字符串“#258”表示标识符 258。
使用完未指定 LR_SHARED 标志的情况下加载的位图、光标或图标后,可以通过调用下表中的函数之一释放其关联的内存。
资源 | Release 函数 |
---|---|
Bitmap | DeleteObject |
游标 | DestroyCursor |
图标 | DestroyIcon |
当创建这些资源的进程终止时,系统会自动删除这些资源;但是,调用相应的函数可节省内存并减小进程的工作集的大小。
示例
有关示例,请参阅 使用窗口类。
注意
winuser.h 标头将 LoadImage 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | winuser.h (包括 Windows.h) |
Library | User32.lib |
DLL | User32.dll |
API 集 | windows 8 中引入的 ext-ms-win-ntuser-gui-l1-1-0 () |
请参阅
概念性
其他资源
引用