2012-10-17 73 views

回答

8

如果你知道標誌設置,你可以使用專有或未設置:

dwMyFlags ^= dwSomeFlag; 

如果你不確定該標誌的狀態,你需要使用按位&,和位不〜

dwMyFlags &= ~dwSomeFlag; 
+0

這非常適用於給出的代碼。 – chris

+0

+1太棒了,第二種方法可以讓我免去寫另一個if語句。謝謝。 –

5

,並與沒有該標誌的部分位:

dwMyFlags &= ~dwSomeFlag; 

這是擴展到刪除多個標誌以及:

dwMyFlags &= ~(dwSomeFlag | dwSomeOtherFlag); 

此外,匈牙利命名法已經過時了使用。

+0

+1例如刪除多個標誌。另外,我知道,我從來沒有使用它,我只是爲了這個例子而想做。我通常給我的變量簡短但描述性的名字。匈牙利符號使代碼看起來很醜陋。 –

+0

@BrandonMiller,當你沒有一種方法來檢查它想知道的是什麼類型時,它會更有用。 – chris

+0

是的,藉助Visual Assist X,我可以將鼠標懸停在變量上以查看其類型。 –

7

做一個按位&旗的要:

dwMyFlags = dwMyFlags & ~dwSomeFlag; 

可以使用&=縮寫是:

dwMyFlags &= ~dwSomeFlag; 
+0

+1反轉,並區分縮寫和完整形式。 –