迷惑啊,关于位操作符&=,|=的一点小问题?
void CListDlg::SetCtrlStyle(HWND hWnd, DWORD dwNewStyle)
{
DWORD dwOldStyle;
dwOldStyle=GetWindowLong(hWnd,GWL_STYLE);
if((dwOldStyle & LVS_TYPEMASK)!=dwNewStyle)
{
dwOldStyle&=~LVS_TYPEMASK;
dwNewStyle |= dwOldStyle;
SetWindowLong(hWnd,GWL_STYLE,dwNewStyle);
}
}
这个函数是我看到的一个改变列表控件风格的代码,但是我弄不懂dwOldStyle&=~LVS_TYPEMASK,dwNewStyle |= dwOldStyle;这两个语句是什么意思,我查阅了一下MSDN,说他们分别是按位运算和或运算,但是在这里(放到语句中)我就不理解了,麻烦能帮我解释一下这两句的意思吗 和 &=,|=的用法。谢谢了!