首页 > 代码库 > 【转载】VC操作剪切板

【转载】VC操作剪切板

1、在剪切板上放置数据

if(OpenClipboard())    //打开剪切板
{
    EmptyClipboard(); //清空剪切板
    CString str;       //从控件中取出字符
    HANDLE hclip;      //GlobalAlloc分配内存的句柄
    char *buf;         //返回的内存地址
    GetDlgItemText(IDC_EDIT_SEND,str);    //取字符
    hclip=GlobalAlloc(GMEM_MOVEABLE,str.GetLength()+1);//在堆上分配制定数目的字节
    buf=(char*)GlobalLock(hclip);//对内存块加锁,并返回它的内存地址
    strcpy(buf,str);        //将字符拷贝到内存中
    GlobalUnlock(hclip);     //解锁
    SetClipboardData(CF_TEXT,hclip);//向剪切板上放置内存中的数据
    CloseClipboard();        //关闭剪切板
}

2、提取剪切板上的数据

if(IsClipboardFormatAvailable(CF_TEXT))   //判断剪切板上的数据格式
{
    HANDLE hclip;
    char *buf;
    hclip=GetClipboardData(CF_TEXT);
    buf=(char*)GlobalLock(hclip);
    GlobalUnlock(hclip);
    SetDlgItemText(IDC_EDIT_RECV,buf);
}