三者的性质
- ^ 异或运算:相同为0,不同为1
- & 与运算:两者为1时为1,有0为0
- | 或运算:有1为1
运算
#define FLAG_DUPLICATE 0x01 // 展开二进制00000001 1
#define FLAG_VISIBLE 0x02 // 展开二进制00000010 2x2
#define FLAG_CANSELECT 0x04 // 展开二进制00000100 3x2
#define FLAG_LABELED 0x08 // 展开二进制00001000 4x2
#define FLAG_BACKGROUND 0x10 // 展开二进制00100000 5x2
#define FLAG_SHOWOUTLINE 0x20 // 展开二进制01000000 6x2
#define FLAG_SHOWATEAGLE 0x40 // 展开二进制10000000 7x2
示例
int nStatus;
nStatus = nStatus | FLAG_DUPLICATE; //一个复选框被选中
int mask = 0xffffffff ^ FLAG_DUPLICATE;//(把FLAG_DUPLICATE中为"1"的那一位置为0,其它位都为1)
nStatus = nStatus & mask;
if(nStatus & FLAG_DUPLICATE == FLAG_DUPLICATE)
cout<<"选中"<<endl;
else
cout<<"未选中"<<endl;