我用CEdit类的Create函数在一般的窗口里创建一个文本编辑子窗口,但不知如何实现Ctrl+V、Ctrl+C、Ctrl+X(粘贴、复制、剪切)的功能,请各个朋友指点。

解决方案 »

  1.   

    xp下框除了Ctrl+A外Edit本身对其他几个都是支持的.
      

  2.   

    不支持,我的绘图软件中央的编辑框
    我也没试成功过,只有一个办法
    将主框架中的Ctrl+C,Ctrl+v屏蔽,或者重载OnCmdMsg()
      

  3.   

    我现在是在一个CControlBar类的基础上建立一个依靠栏,用于依靠在主窗口中(而主窗口本身就需要对Ctrl+C,Ctrl+V等进行处理的),其中有一些子控件,包括CEdit,这种情况下CEdit不支持Ctrl+C,Ctrl+V等操作,但这功能是必须的,因为复制一些文本、数字什么的,高手们请想想办法呀,救救我呀!
      

  4.   

    BOOL CCsdn9View::PreTranslateMessage(MSG* pMsg) 
    {
    // if(WM_RBUTTONDOWN == pMsg->message)
    // return true;
    /* if(WM_KEYDOWN == pMsg->message)
    {
    int nState = GetKeyState(VK_CONTROL);
    if(nState < 0)
    {
    int  ch = (int) pMsg->wParam ;
    if('x' == ch || 'X' == ch)
    ::SendMessage(GetDlgItem(IDC_EDIT1)->GetSafeHwnd(),WM_CUT,ID_EDIT_CUT,0);
    if('C' == ch || 'c' == ch)
    ::SendMessage(GetDlgItem(IDC_EDIT1)->GetSafeHwnd(),WM_COPY,ID_EDIT_CUT,0);
    if('v' == ch || 'V' == ch)
    ::SendMessage(GetDlgItem(IDC_EDIT1)->GetSafeHwnd(),WM_PASTE,ID_EDIT_CUT,0);
    }
    }

    return CFormView::PreTranslateMessage(pMsg);*/
    UINT  nKeyCode = pMsg->wParam; // virtual key code of the key pressed

    if (pMsg->message == WM_KEYDOWN)
    {   
    if ( (nKeyCode == _T('C') || nKeyCode == _T('X') 
    || nKeyCode == _T('V')) && 
    (::GetKeyState(VK_CONTROL) & 0x8000) )
    {
    ::TranslateMessage(pMsg);
    ::DispatchMessage(pMsg);
    return(TRUE);

    }
    }
    return CFormView::PreTranslateMessage(pMsg);

    }