VC中:位图0x4d42问题

来源:百度知道 编辑:UC知道 时间:2024/07/05 00:44:21
BITMAPFILEHEADER结构体中

bfType到底是0x4d42呢还是0x424d怎么回事??干什么用的

你说的太简,不明白.
不过你也可以自已解决,方法:
1.在程序中的代码bfType处右键选"转到bfType的定义(goto definition)",就能明白了.
参考概念:
在我们的程序中经常要用到一类变量,这个变量里的每一位(bit)都对应某一种特性。当该变量的某位为1时,表示有该位对应的那种特性,当该位为0时,即没有该位所对应的特性。当变量中的某几位同时为1时,就表示同时具有几种特性的组合。一个变量中的哪一位代表哪种意义,不容易记忆,所以我们经常根据特征的英文拼写的大写去定义一些宏,该宏所对应的数值中仅有与该特征相对应的那一位(bit)为1,其余的bit都为0。我们使用goto definition就能发现CS_VREDRAW=0x0001,CS_HREDRAW=0x0002,CS_DBLCLKS =0x0008,CS_NOCLOSE=0x0200。他们的共同点就是只有一位为1,其余位都为0。如果我们希望某一变量的数值既有CS_VREDRAW特性,又有CS_HREDRAW特性,我们只需使用二进制OR(|)操作符将他们进行或运算相组合,如style=CS_VREDRAW | CS_HREDRAW | CS_NOCLOSE。如果我们希望在某一变量原有的几个特征上去掉其中一个特征,用取反(~)之后再进行与(&)运算,就能够实现,如在刚才的style的基础上去掉CS_NOCLOSE特征,可以用style & ~CS_NOCLOSE实现。

0x4d42是BMP位图大小,指的是MB的意思 换句话说指的是文件大小单位

bfType =0x4D42;

具体是为什么我也不知道,代表了BMP格式,可能是默认的吧~~