位图图像操作基础(一)

调色板操作

调色板操作类:CPalette

创建调色板函数 BOOL CreatePalette(LPLOGPALETTE lpLogPalette)

 

LOGPALETTE 结构

typedef struct tagLOGPALETTE {

  WORD           palVersion; // 版本号,应指定为0x300

  WORD           palNumEntries; // 调色板中的表项数

  PALETTEENTRY  palPalEntry[1]; // 调色板表项数组

} LOGPALETTE;

 

PALETTEENTRY 结构

typedef struct tagPALETTEENTRY {

  BYTE peRed;

  BYTE peGreen;

  BYTE peBlue;

  BYTE peFlags;

} PALETTEENTRY;

 

HPALETTECPalette 对象互换

HPALETTECPalette 对象相互转换用CPalette::FromHandle CPalette::GetSafeHandle

 

实现调色板操作

第一步:CDC::SelectPalette选入调色板

第二步:CDC::ReleasePalette 实现调色板

 

三个调色板消息

1WM_QUERYNEWPALETTE 通知窗口它将收到输入焦点,给它一次机会实现其自身的逻辑调色板。

2WM_PALETTECHANGED 通知窗口系统调色板已被其他窗口改变。

3WM_PALETTECHANGING通知窗口系统调色板将被其他窗口改变。

 

DDB(Device Dependent Bitmap) 设备相关位图

DIB(Device Independent Bitmap) 设备无关位图

 

GetPaletteEntries 获取指定调色板中的实体数,返回调色板中的颜色数

UINT GetPaletteEntries(

  (in)HPALETTE hpal,        // 指向调色板的句柄

  (in)UINT iStartIndex,     // 从第几个开始接收

  (in)UINT nEntries,        // 接收多少个

  (out)LPPALETTEENTRY lppe   // 接收颜色的数组

);

 

你可能感兴趣的:(byte,struct)