咨询下VC中对风格的设立与获取方法

咨询下VC中对风格的设置与获取方法
在VC中,对于一个结构体,一般会有一个“Style”属性来定义该结构体的风格。
举个简单的例子,比如一个窗体的结构体WNDCLASS,它的style属性就指定了窗口的风格。
然而这个风格一般是用一个双字来存放,我自己的理解是:
它的每个位表示是否设置一种风格,假设用一个字节来表示style,就可以表示8种属性,每个位对应一个风格属性,若置1则是启用该风格属性,置0为不启用。假设对应的define:
#define STYLE_1 0x01  // 00000001
#define STYLE_2 0x02  // 00000010
#define STYLE_3 0x04  // 00000100
#define STYLE_4 0x08  // 00001000
#define STYLE_5 0x10  // 00010000
#define STYLE_6 0x20  // 00100000
#define STYLE_7 0x40  // 01000000
#define STYLE_8 0x80  // 10000000

这样的话,我们在给结构体的style属性复制的时候,对需要设置的风格属性,采用“|”或操作来实现就可以了。
比如,设置具有风格属性1,4,7则使用:
struct.style = STYLE_1 | STYLE_4 | STYLE_7;


现在我的问题是,我作为程序开发者,我拿到这个style的值后,如何来快速判断用户设置了哪些风格属性,来执行对应的添加该风格的操作。
我想到的一个比较笨的方法是:
if(struct.style & STYLE_#){
  // 执行对应的添加该风格的操作,其中#表示1-8,这种if结构顺序执行8次
}


我觉得这个顺序执行8次,逐一检查每个位是否被置1,这样的方式是不是很没效率啊,不知道微软他们在实现的时候有没有什么更好的判断方法呢?希望大神给点开发经验之谈。谢谢~
------解决思路----------------------
据我所知,判断某种模式的时候,的确是&进行位与判断,位运算的速度极快,你不用担心效率问题
------解决思路----------------------
#include <CWINDOW.H>
#include <IOSTREAM.H>
void main()
{
WNDCLASS wndcls;
for (int i = 0;i < 8;i ++)
{
if((wndcls.style>>i) & 1 == 1)
cout<<"设置第"<<i + 1<<"位属性"<<endl;
}
}