0

如何创建与设备上下文兼容的位图,然后将获得的句柄与 BITMAP 结构相关联?如果我写:

...
HBITMAP hbitmap = CreateCompatibleBitmap(hdc, width, height); // these three arguments are initialized somewhere else
hbitmap = CreateBitmapIndirect(bitmap); // argument already initialized and properly filled
...

创建一个与 hdc 兼容的 HBITMAP 句柄,然后初始化一个新的 HBITMAP(填充位图数据),但不保持其兼容性。是否有一个函数不允许从 BITMAP 创建 HBITMAP,而是用已经存在的 BITMAP 源填充初始化的 HBITMAP?

4

2 回答 2

1

复制图像功能

创建一个新图像(图标、光标或位图)并将指定图像的属性复制到新图像。如有必要,该函数会拉伸位以适应新图像的所需大小。

HANDLE WINAPI CopyImage(
  HANDLE hImage,
  UINT uType,
  int cxDesired,
  int cyDesired,
  UINT fuFlags
);

hImage 要复制的图像的句柄。

uType 要复制的图像类型。此参数可以是以下值之一。

  • IMAGE_BITMAP 0 复制位图。
  • IMAGE_ICON 1 复制一个图标。
  • IMAGE_CURSOR 2 复制一个游标。

cxDesired 图像的所需宽度,以像素为单位。如果它为零,则返回的图像将具有与原始 hImage 相同的宽度。

cyDesired 图像的所需高度(以像素为单位)。如果它为零,则返回的图像将具有与原始 hImage 相同的高度。

fuFlags

于 2011-10-19T20:56:41.803 回答
0

CreateBitmapIndirect接受BITMAP它的输入。您可以通过以下方式获得GetObjectHBITMAP

BITMAP Bitmap;
INT nResult = GetObject((HGDIOBJ) hBitmap, sizeof Bitmap, &Bitmap);

CreateBitmapIndirect将能够从此结构创建位图。或者您可以使用CreateCompatibleBitmap从获取Bitmap的 .

于 2011-10-19T20:31:48.500 回答