我想在richedit粘贴一段文字,但是它用ctrl+c会自动粘贴并带有格式,我想去掉这些背景格式等,想让它执行自定义的粘贴函数,但不知怎么弄
求助   

解决方案 »

  1.   

    ctrl+c不是复制吗?怎么是粘贴.
      

  2.   

    响应WM_PASTE 处理看看
    WM_PASTE时处理下剪切板的数据
      

  3.   

    具体是怎样处理,在哪个函数里面啊我曾试过用OnProtected,eidtctrl的父窗口是一个CXXView我在editctrl中SetEventMask(GetEventMask() | ENM_PROTECTED);在父窗口中定入    afx_msg void OnProtected(NMHDR* pNMHDR, LRESULT* pResult);并声明 ON_NOTIFY_REFLECT(EN_PROTECTED, OnProtected)
    void CXXView::OnProtected(NMHDR* pNMHDR, LRESULT* pResult)
    {
    ENPROTECTED* pEP = (ENPROTECTED*)pNMHDR; switch (pEP->msg)
    {
    case WM_KEYDOWN: 
    break;
    case WM_PASTE: 
    {
    m_wndEditSend.OnPaste();
    break; }
    case WM_CUT: 
    case EM_SETCHARFORMAT: default:
    break;
    }; *pResult = FALSE;
    }父窗口处理不到这函数,没反应
      

  4.   

    BOOL CXXXDlg::PreTranslateMessage(MSG* pMsg) 
    {
    if (pMsg->message == WM_KEYDOWN) //响应键盘组合键消息
    { if (GetDlgItem(IDC_EDIT1)==GetFocus())
    {

    if( pMsg->wParam==86 && GetKeyState(VK_CONTROL)&0x80)
    AfxMessageBox(_T("按键Ctrl+V"));
                   }
    }
    return CDialog::PreTranslateMessage(pMsg);
    }