写入剪贴板的代码如下:
CString source;
//put your text in source
source="data被替换";
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();
} 再粘贴到记事本中就成如下的代码:data±»Ìæ»»
英文可以还原,中文就不行!
请教高手?
上述代码从网上得到.

解决方案 »

  1.   

    我的代码好像没有问题,你参考一下:
    //演示粘贴板字符串操作
    //写
    HGLOBAL clipBuff;
    clipBuff=::GlobalAlloc(GMEM_DDESHARE,256);char * p;
    p=(char*)GlobalLock(clipBuff);strcpy(p,"我是中国人");GlobalUnlock(clipBuff);
    if(OpenClipboard())
    {
    if(EmptyClipboard())
    {
    SetClipboardData(CF_TEXT,clipBuff);
    CloseClipboard();
    }
    }//读
    char * data=NULL;
    char * cliptext;
    if ( OpenClipboard() != 0 )
    {
    HANDLE hClipboardData;
    if ( ( hClipboardData = GetClipboardData( CF_TEXT ) ) != 0 )
    {
    if ( ( cliptext = (char*)GlobalLock( hClipboardData ) ) != 0 ) 
    {
    data = (char*)malloc( GlobalSize( hClipboardData ) + 1 );
    strcpy( data, cliptext );
    SetWindowText(data);
    GlobalUnlock( hClipboardData );
    }
    }
    CloseClipboard();
    }
      

  2.   

    用你的方法在程序里写了后在用程序都都可以,但就是用程序写了简帖板之后在记事本里用
    ctrl+v粘贴后就是乱码ÎÒÊÇÖйúÈË