MFC中热键控件(结贴哦)

MFC中热键控件(在线等结贴哦)
代码:
//“设置”按钮的响应函数
void CHotkeyDemoDlg::OnBtnRegister() 
{
//取得热键控件的输入
WORD wVK = 0, wMod = 0;
m_hotkey.GetHotKey(wVK, wMod);
//将热键控件返回的控制键转换为标准控制键代码
int nNewMod = 0;
if(wMod & HOTKEYF_ALT)
nNewMod |= MOD_ALT;
if(wMod & HOTKEYF_CONTROL)
nNewMod |= MOD_CONTROL;
if(wMod & HOTKEYF_SHIFT)
nNewMod |= MOD_SHIFT;
//如果没有正确的输入,退出函数
if(wVK == 0 || nNewMod == 0)
{
AfxMessageBox(_T("请输入热键!"));
return;
}
//注册热键,如果注册成功,隐藏窗体
if(RegisterHotKey(m_hWnd, 1, nNewMod, wVK))
this->ShowWindow(SW_HIDE);
else
AfxMessageBox(_T("注册热键失败!"));
}

问题:红色和蓝色部分代码是什么意思? 主要是那个符号的用法一点也不了解。“&”在这里何解?还有“|=”这个又是什么意思?

------解决方案--------------------
GetHotKey得到的wMode值可以进行位组合。
wMod & HOTKEYF_ALT用来判断位组合中有没有HOTKEY_ALT位。
nNewMod |= MOD_ALT; 表示,想组合中添加MOD_ALT位。
------解决方案--------------------
& 按位于运算
| 按位或运算
|= 和 += 是一个道理 

110010 & 111000 = 110000 相同位上都为1才是1
110010 | 111000 = 111010 相同位上有一个为1就是1