createbitmap

  name="google_ads_frame" marginwidth="0" marginheight="0" src="http://pagead2.googlesyndication.com/pagead/ads?client=ca-pub-5572165936844014&dt=1193665761703&lmt=1193665780&format=336x280_as&output=html&correlator=1193665761687&url=http%3A%2F%2Fwww.codeguru.cn%2Fpublic%2Fiframe%2Fwinapiiframe.htm&color_bg=FFFFFF&color_text=000000&color_link=000000&color_url=FFFFFF&color_border=FFFFFF&ad_type=text&ga_vid=1285758818.1193665762&ga_sid=1193665762&ga_hid=111695597&flash=9&u_h=768&u_w=1024&u_ah=740&u_aw=1024&u_cd=32&u_tz=480&u_his=8&u_java=true" frameborder="0" width="336" scrolling="no" height="280" allowtransparency="allowtransparency">     函数功能:该函数创建一个带有特定宽度、高度和颜色格式的位图。

    函数原型:HBITMAP CreateBitmap(int nWidth,int nHeight, UINT cPlanes, UINT cBitsPeral,CONST VOID *lpvBits);

    参数:

    nWiath:指定位图宽度、单位为像素。

    NHeight:指定位图高度、单位为像素。

    CPlanes:指定该设备使用的颜色位面数目。

    CBitsPerPel:指定用来区分单个像素点颜色的位数(比特数目)。

    LpvBits:指向颜色数据数组指针。这些颜色数据用来设置矩形区域内像素的颜色。矩形区域中的每一扫描线必须是双字节的整数倍(不足部分以0填充)。如果该参数为NULL,那么就表示没有定义新位图。

    返回值:如果函数成功,那么返回值是位图的句柄;如果失败,那么返回值为NULL。若想获取更多错误信息,请调用GetLastError函数。

    备注:在创建完位图之后,可以通过使用SeletObject函数把它选入到设备环境中。尽管函数CreateBitmap可以用来创建彩色位图,但由于性能方面的原因,应用程序使用CreateBitmap函数来创建单位色位图,创建彩色位图应该使用函数CreateCompatibleBitmap。当由CreateBitmap创建而返回的彩色位图被选入到设备环境时,系统必须确保选入进去的设备环境格式与位图匹配。由于函数CreateComapatbleBitmap获取设备环境,所以它返回的位图与指定的设备环境有相同的格式。由于这个原因,对SelectObject的后续调用都要比从CreateBitmap函数创建返回的彩色位图调用快。

    如果位图是单色的,那么对于目标设备环境而言,0表示前景颜色,而1表示背景颜色。

    如果应用程序将nWidth或nHeight参数设为0,那么函数CreateBitmap返回的是只有一个含像素的单色位图的句柄。当不再需要位图时,可调用DeleteObject函数删除它。

    Windows CE:参数cPlanes必须是1。

    速查:Windows NT:3.1及以上版本;Windows:95及以上版本;Windows CE:1.0及以上版本;头文件:wingdi.h;库文件:gdi32.lib。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在MFC中,可以使用CreateBitmap函数创建一个位图对象,其函数定义如下: ``` CBitmap::CreateBitmap(int nWidth, int nHeight, UINT nPlanes, UINT nBitcount, const void* lpBits); ``` 其中,各个参数的含义如下: - nWidth:位图的宽度,以像素为单位。 - nHeight:位图的高度,以像素为单位。 - nPlanes:指定位图的平面数,通常为1。 - nBitcount:指定每个像素的位数(也称位深度),通常为24(表示RGB,每个颜色通道占用8位)或32(表示RGBA,每个颜色通道占用8位)。 - lpBits:指向包含位图数据的缓冲区的指针。如果为NULL,则创建一个空白位图。 需要注意的是,lpBits参数是可选的,如果不需要初始化位图,则可以将其设置为NULL。如果需要初始化位图,则需要提供一个指向缓冲区的指针,缓冲区中存储的是按照位图格式排列的像素数据。 例如,如果需要创建一个宽度为100,高度为200,位深度为32的位图,并将其初始化为黑色,则可以按照以下方式调用CreateBitmap函数: ``` CBitmap bmp; DWORD* pBits = new DWORD[100 * 200]; memset(pBits, 0, 100 * 200 * sizeof(DWORD)); bmp.CreateBitmap(100, 200, 1, 32, pBits); delete[] pBits; ``` 其中,pBits指向了一个大小为100 * 200 * 4字节(32位)的缓冲区,并用memset函数将其初始化为0。最后,将位图宽度、高度、位深度和缓冲区指针作为参数传递给CreateBitmap函数,即可创建一个指定大小和颜色的位图对象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值