BOOL CCodeDlg::PreTranslateMessage(MSG* pMsg) 
{
    int ch  = (int)pMsg->wParam; 
    if(WM_KEYDOWN == pMsg->message)
    {        if  ( (::GetKeyState(VK_CONTROL) & 0x8000) & ('x' == ch || 'X' == ch) )
            ::SendMessage(this->GetFocus()->GetSafeHwnd(),WM_CUT,0,0); 
        else if ( (::GetKeyState(VK_CONTROL) & 0x8000) & ('c' == ch || 'C' == ch) )
            ::SendMessage(this->GetFocus()->GetSafeHwnd(),WM_COPY,0,0);         else if ( (::GetKeyState(VK_CONTROL) & 0x8000) & ('v' == ch || 'V' == ch) )
            ::SendMessage(this->GetFocus()->GetSafeHwnd(),WM_PASTE,0,0);
        //  这里有 GetKeyState 居然不行
        else if ( (::GetKeyState(VK_CONTROL) & 0x8000) & ('a' == ch || 'A' == ch) )
            ::SendMessage(this->GetFocus()->GetSafeHwnd(),EM_SETSEL,0,-1);//         // 这里去掉GetKeyState 之后OK 。 这是为什么呢?
//         if ( ('a' == ch || 'A' == ch) ) 
//             ::SendMessage(this->GetFocus()->GetSafeHwnd(),EM_SETSEL,0,-1);    } 
    return CDialog::PreTranslateMessage(pMsg);
}