void CMyEdit::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags) 
{
if(nChar == 'a' || nChar == 'A')
if(GetKeyState(VK_CONTROL))
AfxMessageBox("ok");
CEdit::OnKeyDown(nChar, nRepCnt, nFlags);
}

解决方案 »

  1.   

    最佳方案:#define IsCTRLpressed() ( (GetKeyState(VK_CONTROL) & (1 << (sizeof(SHORT)*8-1))) != 0 )
    程序中:
    if (IsCTRLpressed())
    {
         switch (nChar)
         {
          case 'A':
             {
               ...;
             }
             break;
         case 'B':
             {
               ...;
             }
             break;
        }
    }
      
      

  2.   

    Gu_c_h(Gu):
    你有没有试过,你的程序可以用吗?
    nChar可是UINT的呀,与char的类型就不同,怎么可能相等呢?
    即使你对nChar强制类型转换,这样也还是不能区分大小写的,A和a的nChar都是0x41,不信你试试。
      

  3.   

    CxxView::PreTranslateMessage(...)
      WM_KEYDOWN?....
        WPARAM?...
      GetKeyState(..)
      return TRUE
      or return CView::PreTranslaleMessage(..)
     those above will maybe do 
         
      

  4.   

    TO sam1111(化神奇为腐朽) :   刚试完,没问题,A和a的nChar都是0x41,并不影响该问题