ON_COMMAND(ID_BLACK, OnColor)
ON_COMMAND(ID_BLUE, OnColor)
ON_COMMAND(ID_GREEN, OnColor)
ON_COMMAND(ID_RED, OnColor)
ON_COMMAND(ID_WHITE, OnColor)
把多个ID映射到同一个函数,在函数里用GetCurrentMessage得到具体消息,分流处理。
UINT m_nIDColor;
m_nIDColor = LOWORD(GetCurrentMessage()->wParam);
// Determines the color being modified
// and then updates the color state
switch(m_nIDColor)
{
case ID_BLACK:
pDoc->ClearAllColors();
pDoc->m_bBlack = !(pDoc->m_bBlack);
break;
case ID_WHITE:
pDoc->ClearAllColors();
pDoc->m_bWhite = !(pDoc->m_bWhite);
break;
case ID_RED:
pDoc->m_bRed = !(pDoc->m_bRed);
pDoc->m_bBlack = FALSE;
pDoc->m_bWhite = FALSE;
break;
case ID_GREEN:
pDoc->m_bGreen = !(pDoc->m_bGreen);
pDoc->m_bBlack = FALSE;
pDoc->m_bWhite = FALSE;
break;
case ID_BLUE:
pDoc->m_bBlue = !(pDoc->m_bBlue);
pDoc->m_bBlack = FALSE;
pDoc->m_bWhite = FALSE;
break;
default:
AfxMessageBox(IDS_UNKCOLOR);
return;
}