请问如何将复制在剪贴板的内容粘贴后,追加到文本框的文本末尾?  
还有怎样得到文本框中文本的字节数?

解决方案 »

  1.   

    在某个按钮的响应函数里写:
    if (!OpenClipboard())
    {
    ::AfxMessageBox("打开剪贴版失败");
    return ;
    }
    char *seltext = new char[5000];
    myscrcpy(seltext,(char *)GetClipboardData(CF_TEXT)); //从剪贴板取回刚才存入的内容
    if (seltext != NULL)
    {
    SetCurSelString(seltext); //将选中的内容放到指定控件去
    EmptyClipboard();
    }
    CloseClipboard();delete seltext;myscrcpy是自己写的一个函数,与strcpy相比,只是多了一步检查,因为从剪贴板取回来的数据有可能是空的,这时用strcpy就会出错。实现如下
    char* myscrcpy(char* dest, const char* src)
    {
    if (src == NULL)
    return strcpy(dest,"");char *tmp = dest;while('\0' != (*tmp++=*src++)) ;return(dest);
    }
      

  2.   

    在某个按钮的响应函数里写:
    if (!OpenClipboard())
    {
    ::AfxMessageBox("打开剪贴版失败");
    return ;
    }
    char *seltext = new char[5000];
    myscrcpy(seltext,(char *)GetClipboardData(CF_TEXT)); 
    if (seltext != NULL)
    {
    SetCurSelString(seltext); //这里怎么指定控件?我查MSDN怎么没有这个函数?
    EmptyClipboard();
    }
    CloseClipboard();delete seltext;
    谢谢~~学到新东西,不过我想知道不是上面的
      

  3.   

    用MFC ClassWizard给CEdit的控件加一个变量CString.
    CString strEdit;
    然后在程序里加入:
    UpdateData(TRUE);
    strEdit.GetLength();
    就是长度.
    strEdit+=seltext;
    UpdateData(FALSE);
    就可以加到CEdit框后面了.还有一点想说的就是:
    delete seltext;
    这样释放会有内存泻漏的.
    应该是:
    delete[] seltext;