然后在XP自带画图中黏贴

解决方案 »

  1.   

    HANDLE SetClipboardData(UINT uFormat,HANDLE hMem);uFormat
    用来指定要放到剪切板中的数据的格式.
    uFormat 可以定义的格式如下:
    CF_DIB内存对象,它包含一个BITMAPINFO结构,然后通过位图位。
    CF_DIF软件领域的数据交换格式。
    CF_PALETTE处理的调色板。每当应用程序放置数据在剪贴板依赖于或承担的调色板,它应该在剪贴板上放置的调色板。
    如果剪贴板中包含在CF_PALETTE(逻辑调色板)格式的数据,应用应该使用SelectPalette和RealizePalette的函数来实现(比较)针对该逻辑调色板剪贴板中的任何其他数据。
    剪贴板显示剪贴板中的数据时,总是使用当前调色板的剪贴板是在CF_PALETTE格式的任何对象。
    CF_PENDATA笔扩展的Microsoft圀椀渀搀漀眀猀笔计算的数据。
    CF_RIFF表示更复杂的音频数据可以被表示为一个CF_WAVE的标准波形格式。
    CF_SYLK微软符号链接(SYLK)格式。
    CF_TEXT文本格式。每行结束的回车/换行(CR-LF)组合。一个空字符的数据信号。使用此格式为ANSI文本。
    CF_WAVE表示在的标准电波格式之一,例如11 kHz或22kHz的脉冲编码调制(PCM)的音频数据。
    CF_TIFF标记图像文件格式。
    CF_UNICODETEXTUnicode文本格式。每行结束的回车/换行(CR-LF)组合。一个空字符的数据信号。
    hMem
    指定具有指定格式的数据的句柄,该参数可以是空.
      

  2.   

    获取剪贴板内容
    用OpenClipboard打开剪贴板
    EnumClipboardFormats加while来循环出一个可用的剪贴板格式
    使用GetClipboardData获得剪贴板的内存块首地址
    用GlobalLock锁定剪贴板那内存块
    GlobalSize可以用来获取该内存块的大小
    使用GlobalUnlock解除锁定
    CloseClipboard关闭剪贴板
      

  3.   

    复制
    void CDynMenuDoc::OnEditCopy() 
    {
     CString source=m_strClipborad;//要复制的内容
     //文本内容保存在source变量中
     if( OpenClipboard(NULL) )//打开剪切板
     {
      HGLOBAL clipbuffer;//内存句柄
      char * buffer;
      EmptyClipboard();//函数清空剪切板并释放剪切板内数据的句柄
      clipbuffer = GlobalAlloc(GMEM_DDESHARE, source.GetLength()+1);//分配内存
      buffer = (char*)GlobalLock(clipbuffer);//指定一个内存块并返回内存块的首地址
      strcpy(buffer, LPCSTR(source));
      GlobalUnlock(clipbuffer);
      SetClipboardData(CF_TEXT,clipbuffer);
      CloseClipboard();
     }