MFC学习记录--(位操作)类型判断

  在学习MFC源码时经常会有:
  if (style & CS_TYPE)
  {
    // 执行
  }
  问:那么if(style & CS_TYPE)有何实际意义那?
  答:当style是由CS_TYPE类型系列(CS_TYPE系列类型转换为二进制只有一位为1)位于运算计算结果,则if(style & CS_TYPE)判断是style是否含有CS_TYPE类型
  例如:  #define CS_TYPE   0x0008 // = 0000 1000//即只有一位二进制数据为1
      #define CS_HIDE   0x0010 // = 0001 0000
      #define CS_SHOW 0x0020 // = 0010 0000
      DWORD style = CS_TYPE | CS_HIDE;
      if (style & CS_TYPE); // true
        if (style & CS_HIDE); // true
                 if (style & CS_SHOW); // false

  ----------------------------------------------------------------------------
  // 有则剔除无则包含
  style |= CS_SHOW; // 此时style含有CS_SHOW(之前没有用CS_SHOW做过按位与运算) 等效于 DWORD style = CS_TYPE | CS_HIDE | CS_SHOW;
  if (style & CS_SHOW); // true
  style |= CS_TYPE; // 剔除CS_TYPE属性(之前用CS_TYPE做过按位与运算)
    if (style & CS_TYPE); // false

转载于:https://www.cnblogs.com/cnarg/archive/2011/02/20/1958843.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值