我在视中加入了一个CRichEdit.发现它不支持CTR+C,CTR+V,.....
BCB 中的TRichEdit类是支持这些操作的,并且还可以自动生成右键菜单(拷贝.粘贴..)
请问在VC中如何实现.
////////////
一定结贴.

解决方案 »

  1.   

    做一个单文档的程序,基于CRichEditView
    所有功能全部有了(查找、拷贝……)如果要用控件的话,去查MSDN吧。里面有。
      

  2.   

    CRichEditView支持ctrl+C,ctrl+V等操作呀,右键弹出菜单,自己写一个不就行了
      

  3.   

    ???我在工程里加了RICHEDIT控件以后怎么就………………对话框打不开了!!BUG吧?
      

  4.   

    我的工程中的CRichEditCtrl(不是CRichEditView)中可以输入,但是全选了然后Ctrl+C没有效果...Ctrl+V也没有反映...不知为何.?
      

  5.   

    // EidtViewView.cpp : implementation of the CEidtViewView class
    //#include "stdafx.h"
    #include "EidtView.h"#include "EidtViewDoc.h"
    #include "EidtViewView.h"#ifdef _DEBUG
    #define new DEBUG_NEW
    #undef THIS_FILE
    static char THIS_FILE[] = __FILE__;
    #endif/////////////////////////////////////////////////////////////////////////////
    // CEidtViewViewIMPLEMENT_DYNCREATE(CEidtViewView, CView)BEGIN_MESSAGE_MAP(CEidtViewView, CView)
    //{{AFX_MSG_MAP(CEidtViewView)
    ON_COMMAND(ID_GETDATA, OnGetdata)
    ON_COMMAND(ID_SETDATA, OnSetdata)
    ON_UPDATE_COMMAND_UI(ID_SETDATA, OnUpdateSetdata)
    ON_WM_CREATE()
    ON_WM_SIZE()
    //}}AFX_MSG_MAP
    END_MESSAGE_MAP()/////////////////////////////////////////////////////////////////////////////
    // CEidtViewView construction/destructionCEidtViewView::CEidtViewView()
    {
    // TODO: add construction code here}CEidtViewView::~CEidtViewView()
    {
    }BOOL CEidtViewView::PreCreateWindow(CREATESTRUCT& cs)
    {
    // TODO: Modify the Window class or styles here by modifying
    //  the CREATESTRUCT cs return CView::PreCreateWindow(cs);
    }/////////////////////////////////////////////////////////////////////////////
    // CEidtViewView drawingvoid CEidtViewView::OnDraw(CDC* pDC)
    {
    CEidtViewDoc* pDoc = GetDocument();
    ASSERT_VALID(pDoc);
    // TODO: add draw code for native data here
    }/////////////////////////////////////////////////////////////////////////////
    // CEidtViewView diagnostics#ifdef _DEBUG
    void CEidtViewView::AssertValid() const
    {
    CView::AssertValid();
    }void CEidtViewView::Dump(CDumpContext& dc) const
    {
    CView::Dump(dc);
    }CEidtViewDoc* CEidtViewView::GetDocument() // non-debug version is inline
    {
    ASSERT(m_pDocument->IsKindOf(RUNTIME_CLASS(CEidtViewDoc)));
    return (CEidtViewDoc*)m_pDocument;
    }
    #endif //_DEBUG/////////////////////////////////////////////////////////////////////////////
    // CEidtViewView message handlersvoid CEidtViewView::OnGetdata() 
    {
    CEidtViewDoc*pDoc=GetDocument();
    m_rich.SetWindowText(pDoc->m_strText);
    m_rich.SetModify(false);

    }void CEidtViewView::OnSetdata() 
    {
    CEidtViewDoc*pDoc=GetDocument();
    m_rich.GetWindowText(pDoc->m_strText);
    m_rich.SetModify(false);

    }void CEidtViewView::OnUpdateSetdata(CCmdUI* pCmdUI) 
    {
    // TODO: Add your command update UI handler code here
    pCmdUI->Enable(m_rich.GetModify());
    }/*void CEidtViewView::OnEditClearAll() 
    {
    // TODO: Add your command handler code here

    }void CEidtViewView::OnUpdateEditClearAll(CCmdUI* pCmdUI) 
    {
    // TODO: Add your command update UI handler code here

    }
    */
    int CEidtViewView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
    {
    if (CView::OnCreate(lpCreateStruct) == -1)
    return -1;

        CRect rect(0,0,0,0);
    m_rich.Create(ES_AUTOHSCROLL   |ES_LEFT   |ES_MULTILINE   
    |ES_WANTRETURN|WS_CHILD|WS_VSCROLL|WS_VISIBLE|WS_HSCROLL,rect,this,1);

    return 0;
    }void CEidtViewView::OnSize(UINT nType, int cx, int cy) 
    {
    CView::OnSize(nType, cx, cy);

        CRect rect;
    GetClientRect(&rect);
    m_rich.SetWindowPos(&wndBottom,0,0,rect.right-rect.left,rect.bottom-rect.top,SWP_SHOWWINDOW);
    }
    这是我的代码..<V C++技术内幕上面的>
      

  6.   

    在stdafx.h中包含#include "afxole.h"支持剪贴板,
    在程序的app的OnInitialize()中加上AfxOleInitalize()
    否则不起作用。
      

  7.   

    to hanwg() :
    我照着你说的做,编译提示没有定义AfxOleInitalize();
    我在msdn中查找了一下,根本没有这个函数,而只要AfxOleInit();
    而且它在 afxdisp 头文件中,不在afxole.h知那个啊.
      

  8.   

    而且我把afxdisp.h加入,并且调用afxOleInit()根本没有作用啊...请大哥们帮忙啊..我是菜鸟,但我一定会结贴的.
      

  9.   

    对不起,应该为加AfxInitRichEdit()在程序的app的OnInitialize();
    #include "afxcmn.h",你可以看一下msdn中的CRichEditCtrl