在 MFC 中,CBitmap::CreateBitmapIndirect 是 CBitmap 类的一个公共方法,用于通过传递一个 BITMAP 结构体来创建位图对象。这个方法允许你以较为灵活的方式创建位图,通过指定位图的宽度、高度、颜色平面数和每个颜色平面的位数。

以下是该方法的简要说明:
BOOL CreateBitmapIndirect(const BITMAP* lpBitmap);

参数:
  •  lpBitmap:指向一个 BITMAP 结构体的指针,该结构体包含了要创建的位图的详细信息,如宽度、高度、颜色平面数、每个颜色平面的位数等。


返回值:
  •  如果成功创建位图,则返回非零值;否则返回零。


示例用法:
CBitmap myBitmap;

// 准备一个 BITMAP 结构体,用于指定位图的详细信息
BITMAP bmpInfo;
bmpInfo.bmType = 0;        // 位图类型,0 表示设备无关位图
bmpInfo.bmWidth = 100;     // 位图宽度
bmpInfo.bmHeight = 100;    // 位图高度
bmpInfo.bmWidthBytes = 400;// 每行的字节数
bmpInfo.bmPlanes = 1;      // 颜色平面数
bmpInfo.bmBitsPixel = 24;  // 每个像素的位数

// 创建位图对象
if (myBitmap.CreateBitmapIndirect(&bmpInfo)) {
    // 成功创建位图
    // 这里可以使用 myBitmap 对象进行其他操作
} else {
    // 创建位图失败
}

在这个示例中,CreateBitmapIndirect 方法用于通过 BITMAP 结构体创建一个新的位图对象。通过设置 BITMAP 结构体的成员,你可以自定义位图的各种属性。


转载请注明出处:http://www.pingtaimeng.com/article/detail/15734/MFC/CBitmap