typedef struct tagLOGPALETTE {
WORD palVersion;
WORD palNumEntries;
PALETTEENTRY palPalEntry[1];
} LOGPALETTE; 上面是调色板结构,第一个参数说是版本号,第二个是图像中使用的颜色数,第三个是每种颜色的定义.我的疑问就在第三个参数,它应该是一个数组,我理解大小是palNumEntries个,也就是图像中有多少颜色就要有多少个定义,可是这里却把数组元素定义为1,我百思不得其解,希望高人指教.
拜谢!
WORD palVersion;
WORD palNumEntries;
PALETTEENTRY palPalEntry[1];
} LOGPALETTE; 上面是调色板结构,第一个参数说是版本号,第二个是图像中使用的颜色数,第三个是每种颜色的定义.我的疑问就在第三个参数,它应该是一个数组,我理解大小是palNumEntries个,也就是图像中有多少颜色就要有多少个定义,可是这里却把数组元素定义为1,我百思不得其解,希望高人指教.
拜谢!
typedef struct tagLOGPALETTE {
WORD palVersion; //使用0x300
WORD palNumEntries; //调色板颜色数目
PALETTEENTRY palPalEntry[1]; //调色板的每个颜色信息
} LOGPALETTE; 可以看到在这个结构中只包含了一个配置调色板颜色的信息,这是因为MFC并不知道需要多少种颜色,但是我们必须自己扩展这个结构以容纳所有的颜色,方法如下:
struct
{
LOGPALETTE lp;
PALETTEENTRY pe[2];
}lpl;
LOGPALETTE *plp = (LOGPALETTE *) &lpl;
这样就能够容纳3种颜色的信息了