我要在一个View视图中自己写剪切复制功能,请问我如何让鼠标选中那些文字,又如何做到剪切复制。
谢谢。在线等

解决方案 »

  1.   

    你要map一下选择或是复制的消息
    然后,取得文本,再打开剪切板
    下面的代码可能对你有用void CMyView::OnEditCopy()
    {
      if ( !OpenClipboard() )
      {
        AfxMessageBox( "Cannot open the Clipboard" );
        return;
      }
      // Remove the current Clipboard contents
      if( !EmptyClipboard() )
      {
        AfxMessageBox( "Cannot empty the Clipboard" );
        return;
      }
      // ...
      // Get the currently selected data
      // ...
      // For the appropriate data formats...
      if ( ::SetClipboardData( CF_??, hData ) == NULL )
      {
        AfxMessageBox( "Unable to set Clipboard data" );
        CloseClipboard();
        return;
      }
      // ...
      CloseClipboard();
    }
      

  2.   

    DWORD dwLength = 100; // 要复制的字串长度
    HANDLE hGlobalMemory = GlobalAlloc(GHND, dwLength + 1); // 分配内存
    LPBYTE lpGlobalMemory = (LPBYTE)GlobalLock(hGlobalMemory); // 锁定内存
    for (int i = 0; i 〈 dwLength; i++) // 将"*"复制到全局内存块
    *lpGlobalMemory++ = '*';
    GlobalUnlock(hGlobalMemory); // 锁定内存块解锁
    HWND hWnd = GetSafeHwnd(); // 获取安全窗口句柄
    ::OpenClipboard(hWnd); // 打开剪贴板
    ::EmptyClipboard(); // 清空剪贴板
    ::SetClipboardData(CF_TEXT, hGlobalMemory); // 将内存中的数据放置到剪贴板
    ::CloseClipboard(); // 关闭剪贴板
      

  3.   

    View试图类的基类是什么CView还是CEditView,如果是CEditView的话,那样的话cut copy paste你就不用做了
      

  4.   

    用Edit控件做比较好,功能也容易实现...
    在要写字的地方铺一个Edit控件