在Cedit框中右键时弹出菜单,如果剪切板上有内容,应该是粘贴可用的,点击粘贴后会触发什么事件?????因为要对粘贴的内容进行处理,如存在非数字字符就粘贴无效,求控制指点

解决方案 »

  1.   

    根据你右键菜单的ID建立消息映射啊
    ON_COMMAND(ID_EDIT_PASTE, OnPaste)
      

  2.   

    拦截文本框的EN_CHANGE事件:void CXXXDlg::OnChangeMd5() 
    {
    // TODO: If this is a RICHEDIT control, the control will not
    // send this notification unless you override the CDialog::OnInitDialog()
    // function and call CRichEditCtrl().SetEventMask()
    // with the ENM_CHANGE flag ORed into the mask.

    CString str;
    GetDlgItemText(IDC_XXX,str);
    for(int i=0;i<str.GetLength();i++)
    {
    int b = (int)str[i];
    if( b>=0x30 && b<=0x39) 
    continue;
    else
    {
    SetDlgItemText(IDC_XXX,NULL);
    return;
    }
    }

    }
      

  3.   

    系统自动生成的菜单,你怎么知道ID,知道ID了肯定会加
      

  4.   

    换个思路试试呢
    对edit 加个校验  只允许数字
      

  5.   


    继承CEdit类创建CEditEx类,拦截CEditEx类的WM_RBUTTONUP事件,在菜单弹出前加入标记,拦截CEditEx类的WM_LBUTTONDOWN中重置标记,以处理弹出菜单后未点击菜单项的情况,在void CXXXDlg::OnChangeMd5()中判断是输入还是弹出菜单后的变化,并重置标记即可