比如在我的程序中有一个字符串“你好”,我要先把它拷贝到剪贴板,然后再让它自动粘贴到其他文本编辑程序(比如word,notepad,outlook等),要怎么做,请各位指教

解决方案 »

  1.   

    void CClipTextDlg::OnCliptext() 
    {
        char pText[5] = "你好";
        HGLOBAL      hGlobal ;
        PTSTR        pGlobal ;
    hGlobal = GlobalAlloc (GHND | GMEM_SHARE,            
    (lstrlen (pText) + 1) * sizeof (TCHAR)) ;      
    pGlobal = (char *)GlobalLock (hGlobal) ;     
    lstrcpy (pGlobal, pText) ;     
    GlobalUnlock (hGlobal) ;
         
    OpenClipboard () ;               
    EmptyClipboard () ; 
    SetClipboardData (CF_TEXT, hGlobal) ;               
    CloseClipboard () ;
    }
      

  2.   

    如何在剪贴板上读写文本往剪贴板写文本:  
    CString source; 
    //put your text in source
    if(OpenClipboard())
    {
    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();
    }从剪贴板读文本:  
          char * buffer;
    if(OpenClipboard())
    {

    buffer = (char*)GetClipboardData(CF_TEXT);
    //do something with buffer here 
    //before it goes out of scope

    } CloseClipboard();