描述
CreateBitmapIndirect函数创建具有指定宽度,高度和颜色格式(颜色平面和每像素位数)的位图。
C++ 语法
HBITMAP CreateBitmapIndirect( __in const BITMAP *lpbm ); |
PowerBASIC 语法
FUNCTION CreateBitmapIndirect( _ BYREF lpbm AS BITMAP _ ) AS DWORD |
参数
lpbm
[in]指向BITMAP结构的指针,其中包含有关位图的信息。如果应用程序将bmWidth或bmHeight成员设置为零,CreateBitmapIndirect将句柄返回到1×1像素,单色位图。
返回值
如果函数成功,则返回值是位图的句柄。
如果函数失败,返回值为NULL。
Windows NT / 2000 / XP / Vista / Windows 7:要获取扩展错误信息,请调用GetLastError.这可以返回以下值。
值 |
含义 |
ERROR_INVALID_PARAMETER |
一个或多个输入参数无效。 |
ERROR_NOT_ENOUGH_MEMORY |
位图太大,无法分配内存。 |
备注
CreateBitmapIndirect功能创建与设备相关的位图。
创建位图后,可以通过调用SelectObject功能将其选择到设备上下文中。但是,如果位图和DC具有相同的格式,则位图只能被选择到设备上下文中。
虽然CreateBitmapIndirect功能可用于创建色彩位图,但出于性能原因,应用程序应使用CreateBitmapIndirect创建单色位图,并创建彩色位图CreateCompatibleBitmap.每当选择来自CreateBitmapIndirect的颜色位图到设备上下文中时,系统必须确保位图与正在选择的设备上下文的格式相匹配。因为CreateCompatibleBitmap使用设备上下文,所以返回与指定设备上下文格式相同的位图。因此,使用CreateCompatibleBitmap的颜色位图比从CreateBitmapIndirect返回的颜色位图更快地调用SelectObject.
如果位图是单色的,则零表示前景色,一个表示目标设备上下文的背景颜色。
当您不再需要位图时,请调用DeleteObject功能将其删除。
Windows 95/98 / Me:创建的位图的大小不能超过16MB。
引用文件 #INCLUDE Once
WinGdi.inc(包括Windows.inc)