我做了个MFC单文档程序,在客户区显示文字和表格,我想通过鼠标选中窗口客户区的文字和表格,右键“复制”(或者“编辑”-“复制”),然后粘贴到Word中,该怎样实现?高手帮帮忙,最好能给出代码,谢谢!

解决方案 »

  1.   


    CDC *pDC = GetDC();
    CBitmap bmpTemp;
    BITMAPINFO bitmapinfo = { 0 }; 
    void *pbuffer = NULL; bitmapinfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); 
    bitmapinfo.bmiHeader.biWidth = rcOrg.Width(); 
    bitmapinfo.bmiHeader.biHeight = rcOrg.Height(); 
    bitmapinfo.bmiHeader.biPlanes = 1; 
    bitmapinfo.bmiHeader.biBitCount = 24; 

    HBITMAP bitmap = CreateDIBSection(pDC->GetSafeHdc(), &bitmapinfo,
          DIB_RGB_COLORS, (LPVOID *)&pbuffer, NULL, 0); 
    if(bitmap == NULL || pbuffer == NULL)
    {
    TRACE("CreateDIBSection failed\n");;
    return;
    }
    bmpTemp.Attach(bitmap);
      

  2.   

    把下列代码放到按钮事件里: CClientDC dc(this);
    CDC cMemDC;
    CBitmap cBit,*pOldBP;
    RECT rect; cMemDC.CreateCompatibleDC(&dc);
    GetClientRect(&rect);
    cBit.CreateCompatibleBitmap(&dc,rect.right - rect.left,rect.bottom - rect.top);
    pOldBP = cMemDC.SelectObject(&cBit);
    cMemDC.BitBlt(0,0,rect.right - rect.left,rect.bottom - rect.top,&dc,0,0,SRCCOPY);

    cMemDC.SelectObject(pOldBP);
    //把兼容位图放到剪贴板
    if (OpenClipboard() )
    {
    EmptyClipboard();
    SetClipboardData(CF_BITMAP,cBit.m_hObject);
    CloseClipboard();
    }
      

  3.   


    这段代码要放到CXXXView::OnDraw()里面吗?我这样做,运行错误  “error C2065: “rcOrg”: 未声明的标识符”“error C2228: “.Width”的左边必须有类/结构/联合”
    是什么原因,我真的很菜,希望大家能多多指点,在此谢过了!
    十分感谢!