勇芳软件工作室.汉化:  Bitmaps > Bitmap Functions >

LoadBitmap

Previous pageReturn to chapter overviewNext page

描述

 

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)