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

CreateBitmapIndirect

Previous pageReturn to chapter overviewNext page

描述

 

CreateBitmapIndirect函数创建具有指定宽度,高度和颜色格式(颜色平面和每像素位数)的位图。

 

C++ 语法

 

HBITMAP CreateBitmapIndirect(

__in const BITMAP *lpbm

);

 

PowerBASIC 语法

 

FUNCTION CreateBitmapIndirect( _

BYREF lpbm AS BITMAP _

) AS DWORD

 

参数

 

lpbm

 

[in]指向BITMAP结构的指针,其中包含有关位图的信息。如果应用程序将bmWidthbmHeight成员设置为零,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)