如何创建设备上下文兼容位图,然后将获取的句柄与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?
答案 0 :(得分:1)
创建新图像(图标,光标或位图)并将指定图像的属性复制到新图像。如有必要,该函数会拉伸位以适合新图像的所需大小。
HANDLE WINAPI CopyImage(
HANDLE hImage,
UINT uType,
int cxDesired,
int cyDesired,
UINT fuFlags
);
hImage要复制的图像的句柄。
uType要复制的图像类型。此参数可以是以下值之一。
cxDesired图像所需的宽度(以像素为单位)。如果为零,则返回的图像将具有与原始hImage相同的宽度。
cyDesired图像所需的高度(以像素为单位)。如果为零,则返回的图像将与原始hImage具有相同的高度。
fuFlags
答案 1 :(得分:0)
CreateBitmapIndirect
对其输入采用BITMAP
。您可以从HBITMAP
GetObject
获取
BITMAP Bitmap;
INT nResult = GetObject((HGDIOBJ) hBitmap, sizeof Bitmap, &Bitmap);
CreateBitmapIndirect
将能够从此结构创建一个位图。或者,您可以使用CreateCompatibleBitmap
创建兼容的位图,从获得的Bitmap
提供宽度/高度。