描述
LoadBitmap函数从模块的可执行文件中加载指定的位图资源。此函数已被LoadImage功能所取代。
C++ 语法
HBITMAP LoadBitmapA( __in HINSTANCE hInstance, __in LPCSTR lpBitmapName ); |
Unicode版本:
HBITMAP LoadBitmapW( HINSTANCE hInstance, LPCWSTR lpBitmapName ); |
PowerBASIC 语法
FUNCTION LoadBitmapA( _ BYVAL hInstance AS DWORD, _ BYREF lpBitmapName AS ASCIIZ _ ) AS DWORD |
Unicode版本:
FUNCTION LoadBitmapW( _ BYVAL hInstance AS DWORD, _ BYREF lpBitmapName AS WSTRINGZ _ ) AS DWORD |
参数
hInstance
[in]处理可执行文件包含要加载位图的模块实例。
lpBitmapName
[in]指向包含要加载的位图资源的名称的以null结尾的字符串的指针。或者,该参数可以由低位字中的资源标识符和高阶字中的零组成。MAKEINTRESOURCE宏可用于创建此值。
返回值
如果函数成功,则返回值是指定位图的句柄。
如果函数失败,返回值为NULL。
Windows NT / 2000 / XP / Vista / Windows 7:要获取扩展错误信息,请调用GetLastError.
备注
如果lpBitmapName参数指向的位图不存在,或者没有足够的内存来加载位图,则该函数将失败。
LoadBitmap创建一个不兼容的显示位图,无法选择打印机。要加载可以选择打印机的位图,请调用LoadImage并指定LR_CREATEDIBSECTION以创建DIB部分。DIB部分可以选择到任何设备。
应用程序可以使用LoadBitmap功能来访问预定义的位图。为此,应用程序必须将的hInstance参数设置为NULL,将lpBitmapName参数设置为以下值之一。
位图名称 |
位图名称 |
OBM_BTNCORNERS |
OBM_OLD_RESTORE |
OBM_BTSIZE |
OBM_OLD_RGARROW |
OBM_CHECK |
OBM_OLD_UPARROW |
OBM_CHECKBOXES |
OBM_OLD_ZOOM |
OBM_CLOSE |
OBM_REDUCE |
OBM_COMBO |
OBM_REDUCED |
OBM_DNARROW |
OBM_RESTORE |
OBM_DNARROWD |
OBM_RESTORED |
OBM_DNARROWI |
OBM_RGARROW |
OBM_LFARROW |
OBM_RGARROWD |
OBM_LFARROWD |
OBM_RGARROWI |
OBM_LFARROWI |
OBM_SIZE |
OBM_MNARROW |
OBM_UPARROW |
OBM_OLD_CLOSE |
OBM_UPARROWD |
OBM_OLD_DNARROW |
OBM_UPARROWI |
OBM_OLD_LFARROW |
OBM_ZOOM |
OBM_OLD_REDUCE |
OBM_ZOOMD |
以OBM_OLD开头的位图名称表示16位版本的Windows早于3.0使用的位图。
对于使用任何OBM_常量的应用程序,必须在包含windows.inc头文件之前定义常量OEMRESOURCE。
请注意,使用LoadBitmap加载OEM位图已被弃用,仅在后向兼容性的情况下才受支持。新应用程序应使用DrawFrameControl绘制系统元素。
应用程序必须调用DeleteObject函数来删除LoadBitmap函数返回的每个位图句柄。
Windows 95:Windows 95无法处理包含大小为64K或更大的资源的可执行文件。为了保持与16位Windows的兼容性,它将32位大小转换为16位大小和移位计数。当它进行这种转换时,它会舍入而不是向上,所以有些字节可能会丢失。大资源所需的转移可能导致小资源被严重截断,甚至完全消除。为了避免这个问题,请计算最大资源的缩放因子,并将所有资源以零排列,因此每个都是缩放因子的倍数。例如,大小为&H100065的资源将转换为&H8003 * 32,这将丢失5个字节。要保存5个字节,您必须用27个零填充资源,使其成为大小&H100080,然后转换为&H8004 * 32。注意,任何较小的资源也必须用零填充,因此它是缩放因子的倍数,在这种情况下为32。
统一
在Windows NT / 2000 / XP / Vista / Windows 7上实现为Unicode和ANSI版本。还支持Microsoft Layer for Unicode。
引用文件 #INCLUDE Once
WinUser.h(包括windows.inc)