捐助郴维网
感谢您对郴维网的支持,你的支持将是郴维网持续发展的动力!
二维码
×
当前位置:郴维网 >API档案 > 正文
29 2017.06

LoadImage

点击次数:1233 更新时间:2017-6-29 20:57:02  【打印此页

原文链接 -> 传送门

函数功能:

LoadImage 函数用于载入一个图标,光标,动画光标或位图。


API 函数原型:

注释:_In_ 说明该参数是输入的,_In_opt_ 说明该参数是输入同时是可选的。

HANDLE WINAPI LoadImage(
  _In_opt_ HINSTANCE hinst,
  _In_     LPCTSTR   lpszName,
  _In_     UINT      uType,
  _In_     int       cxDesired,
  _In_     int       cyDesired,
  _In_     UINT      fuLoad
);



参数解析:
 

参数

含义

hinst

1. 指向 DLL 模块或包含图像加载的可执行文件(.exe)的句柄。若想获得更多信息,请参见GetModuleHandle 函数。(注意:在 32 位的 Windows 系统上,一个实例句柄(HINSTANCE),比如由 WinMain 的系统函数调用的公开的应用程序实例句柄,和模块句柄(HMODULE)其实是一样的

2. 载入一个 OEM 图像,并将其设为 NULL

3. 载入一个独立的资源(图标,光标或位图文件)—— 例如 c:\myimage.bmp —— 将其值设为 NULL

lpszName

1. 指向要加载的图像。如果参数 hinst 是非 NULL 并且参数 fuload 省略了 LR_LOADFROMFILE,那么参数 lpszName 指定 hinst 模块中的图像资源。如果图像资源是按名称从模块加载,那么参数 lpszName 是一个指向以 null 结尾的字符串,该字符串包含图像资源的名称。如果图像资源是按顺序从模块加载,使用MAKEINTRESOURCE 宏将图像序号转换成可以传递给 LoadImage 函数的形式。若想获得更多信息,请参见下面的备注部分

2. 若参数 hinst 为 NULL 并且参数 fuload 省略了LR_LOADFROMFILE,参数 lpszName 就指定要加载的 OEM 图像。OEM 图像标识符在 Winuser.h 中定义,有以下的前缀:

前缀

含义

OBM_

OEM 位图

OIC_

OEM 图标

OCR_

OEM 光标


若要将这些常量传递给 LoadImage 函数,请使用 MAKEINTRESOURCE 宏。例如,若要加载 OCR_NORMAL 光标,要将 MAKEINTRESOURCE(OCR_NORMAL) 作为参数 lpszName,将 NULL 作为参数 hinst ,将 LR_SHARED 作为标识之一传给 fuload 参数

3. 如果参数 fuload 包含 LR_LOADFROMFILE,lpszName 则是包含独立资源 (图标,光标或位图文件)的文件的名称。因此,将 hinst 设置为 NULL

uType

指定要加载图像的类型。此参数可以是下列值之一:

含义

IMAGE_BITMAP(0)

载入一个位图

IMAGE_CURSOR(2)

载入一个光标

IMAGE_ICON(1)

载入一个图标

cxDesired

指定以像素为单位的图标或光标的宽度。如果此参数为零,并且参数 fuload 是 LR_DEFAULTSIZE,该函数将使用 SM_CXICON 或 SM_CXCURSOR 系统度量值来设置宽度。如果此参数为零,并且没使用 LR_DEFAULTSIZE,该函数将使用实际资源的宽度

cyDesired

指定以像素为单位的图标或光标的高度。如果此参数为零,并且参数 fuload 是 LR_DEFAULTSIZE, 该函数将使用 SM_CYICON 或 SM_CYCURSOR 系统度量值来设置高度。如果此参数为零,并且没使用 LR_DEFAULTSIZE,该函数将使用实际资源的高度

fuLoad

此参数可以是一个或多个下面的值:

含义

LR_CREATEDIBSECTION
(0x00002000)

当 uType 参数指定 IMAGE_BITMAP 时,会使该函数返回一个 DIB 位图,而不是一个兼容的位图。此标志可用于加载位图,而不映射到显示设备的颜色

LR_DEFAULTCOLOR
(0x00000000)

默认标志;它什么都不做。它的意思是“not LR_MONOCHROME”

LR_DEFAULTSIZE
(0x00000040)

如果 cxDesired 或 cyDesired 的值设置为零,为图标或光标使用系统度量值指定的宽度或高度。如果没指定此标志并且 cxDesired 和 cyDesired 设置为零,该函数使用实际资源的大小。如果资源包含多个图像,该函数使用第一个图像的大小

LR_LOADFROMFILE
(0x00000010)

从由 lpszName 指定的文件加载独立的图像(图标,光标或位图)

LR_LOADMAP3DCOLORS
(0x00001000)

1. 搜索图像的颜色表并且使用相应的三维颜色替换以下的灰色阴影:
 

·         Dk Gray, RGB(128,128,128) with COLOR_3DSHADOW

·         Gray, RGB(192,192,192) with COLOR_3DFACE

·         Lt Gray, RGB(223,223,223) with COLOR_3DLIGHT


2. 不要使用这个选项如果你加载的位图颜色深度大于 8 bpp

LR_LOADTRANSPARENT
(0x00000020)

1. 检索图像的第一个像素的颜色值并且将颜色表中的对应条目替换成默认的窗口颜色(COLOR_WINDOW)。在图像中使用该条目的所有像素都会变成默认的窗口颜色。此值仅适用于具有相应的颜色表的图像

2. 不要使用这个选项如果你加载的位图颜色深度大于 8 bpp

3. 如果 fuLoad 包含 LR_LOADTRANSPARENT 和 LR_LOADMAP3DCOLORS,LR_LOADTRANSPARENT 具有更高的优先级。但是,颜色表条目会被替换为 COLOR_3DFACE,而不是 COLOR_WINDOW

LR_MONOCHROME
(0x00000001)

用黑色和白色加载图像

LR_SHARED
(0x00008000)

1. 如果图像被加载多次,共享图像的句柄。如果未设置 LR_SHARED,对同一资源二次调用 LoadImage 会再次加载图像并返回不同的句柄

2. 当你使用此标志时,系统将销毁资源当它不再需要时

3. 对于非标准大小的图像,在加载之后可能改变的图像,或从文件加载的图像,则不使用 LR_SHARED

4. 当加载系统图标或光标时,必须使用 LR_SHARED,否则,函数将不能加载资源

5. 此函数在所请求的资源名称中查找缓存中的第一个图像,无论请求的大小

LR_VGACOLOR
(0x00000080)

使用真正的 VGA 颜色



返回值:

1. 如果函数调用成功,返回值是新加载图像的句柄;

2. 如果函数调用失败,返回值为 NULL。

3. 获取更多错误信息请调用 GetLastError 函数。


备注:

1. 如果 is_intresource(lpszname) 为 TRUE,那么 lpszname 指定给定的资源的整数标识符。否则,它是一个指向一个空终止字符串的指针。如果字符串的第一个字符是一个井号(#),那么剩下的字符代表一个十进制数,其指定了资源的整数标识符。例如,字符串“#258”代表标识符 258。

2. 当你使用完你加载的位图,光标或图标而没有指定 LR_SHARED 标记,你可以通过调用下表中的函数来释放与其关联的内存:
 

资源

释放函数

Bitmap

DeleteObject

Cursor

DestroyCursor

Icon

DestroyIcon


系统将自动删除这些资源当创建它们的进程终止;但是,调用适当的函数可以节省内存,并降低进程的工作集的大小。


需求:
 

Minimum supported client

Windows 2000 专业版 [仅桌面应用程序]

Minimum supported server

Windows 2000 服务器版 [仅桌面应用程序]

Header

Winuser.h (包含于 Windows.h)

Library

User32.lib

DLL

User32.dll

Unicode and ANSI name

LoadlmageW (Unicode) 和 LoadlmageA (ANSI)

 

提示
郴维网为您提供各类专业服务:
软件开发,电脑配件销售,WIFI路由器销售,上门电脑维修,上门安装系统,系统安装,软、硬件安装,电脑除尘清灰,显示器维修,WIFI安装调试,服务器维护,数据恢复,密码破解,网络布线,网络检修,打印机维修,打印机加碳粉,苹果电脑安装系统,苹果电脑安装双系统,监控安装维护,电脑外包,笔记本电脑维修,餐饮、美容行业软件安装 等。。。。。。
点击次数:1233 更新时间:2017-6-29 20:57:02  【打印此页

上一条:GetMenuItemInfo

下一条:GetCursorInfo

关键词推荐:郴州电脑城 郴州电脑维修公司 维修电脑公司 郴州软件开发 上门电脑维修 上门安装系统 笔记本电脑维修 郴州打印机维修 打印机加碳粉 电脑安装双系统 苹果电脑双系统 液晶显示器维修 联想笔记本维修 联想笔记本维修电话 戴尔笔记本维修电话 郴州戴尔笔记本维修 戴尔笔记本郴州维修点 华硕笔记本维修点 郴州华硕笔记本维修 郴州笔记本上网维修