我不使用HOTKEY这个控件,请问如何在某个编辑框中显示出我按下了“ALT”键,或者是“ctrl”,“SHIFT”,“ALT”三个辅助按键中的任意组合键值?
以下是我的程序,m_sAlt,m_sCommon,m_sControl,m_sSpecial,m_strHotkey都是我定义的CString类型。
void CHotKeyEdit::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
// CEdit::OnKeyDown(nChar, nRepCnt, nFlags);
m_strHotKey.Empty() ;
if(nFlags == 13) m_sAlt = "Alt + " ;//为什么ALT的效果出不来???
// MessageBox(m_sAlt);
if(nChar >= VK_F1 && nChar <= VK_F12)  {
    m_sSpecial.Format("F%d",nChar-VK_F1+1) ;
}
else if( (nChar >='A' && nChar <='Z') || 
     (nChar >='a' && nChar <='z') ||
     (nChar >='0' && nChar <='9'))     
                m_sCommon.Format("%c",nChar) ;
    if(m_sControl.IsEmpty() == TRUE) {
        switch(nChar) 
{
          case VK_CONTROL: m_sControl = "Ctrl + " ; break ;
          case VK_SHIFT : m_sControl = "Shift + " ; break ;
         case VK_MENU: m_sAlt = "Alt + " ; break;//这里ALT效果也出不来
          case VK_HOME : m_sControl = "Home + " ; break ;        default: break ;
}
}
    
}void CHotKeyEdit::OnKeyUp(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
 //  CEdit::OnKeyUp(nChar, nRepCnt, nFlags);
m_strHotKey = m_sControl + m_sAlt + m_sSpecial + m_sCommon ;
m_sControl.Empty() ;
m_sSpecial.Empty() ;
m_sCommon.Empty() ;
if(nChar != VK_CONTROL && nChar != VK_SHIFT) 
                 SetWindowText(m_strHotKey) ;
}
请高手教我!