剪贴板

  剪贴板

剪贴板实际上是系统维护管理的一块内存区域,当在一个进程中复制数据时,是将这个数据放到该块内存区域中,当在另一个进程中粘贴数据时,是从该块内存区域中取出数据,然后显示在窗口上。


主要函数

 BOOL OpenClipborad();--打开剪贴板,成功返回TRUE;如果其他程序或者当前窗口已经打开了剪贴板,则该函数返回FALSE;如果某个程序已经打开了剪贴板,则其他应用程序将不能修改剪贴板,直到前者调用了CloseClipborad函数。

BOOLCloseClipborad();--关闭剪贴板

BOOLEmptyClipboard();--清空剪贴板,并释放剪贴板中数据的句柄,然后将剪贴板的所有权分配给当前打开剪贴板的窗口。

GlobalAlloc();--从堆上分配指定数据的字节

GlobalLock();--对全局内存对象加锁

GlobalUnlock();--对全局内存对象解锁

SetClipboardData();--以指定的剪贴板格式向剪贴板上放置数据

IsClipboardFormatAvailable();--用来检测剪贴板上是否包含了参数format指定的特定格式的数据

GetClipboardData();--从剪贴板中获得指定格式的数据

关键代码

void CChipBoardDlg::OnBnClickedButtonSend()
{
// TODO: 在此添加控件通知处理程序代码
if(OpenClipboard())
{
CString str="";
HANDLE hClip=NULL;
char*pBuf=NULL;
EmptyClipboard();
GetDlgItemText(IDC_EDIT_SEND,str);
hClip=GlobalAlloc(GMEM_MOVEABLE,str.GetLength()+1);
pBuf=(char*)GlobalLock(hClip);
strcpy(pBuf,str);
GlobalUnlock(hClip);
SetClipboardData(CF_TEXT,hClip);
CloseClipboard();
}
}


void CChipBoardDlg::OnBnClickedButtonRecv()
{
// TODO: 在此添加控件通知处理程序代码
if(OpenClipboard())
{
if(IsClipboardFormatAvailable(CF_TEXT))
{
HANDLE hClip =NULL;
char*pBuf=NULL;
hClip=GetClipboardData(CF_TEXT);
pBuf=(char*)GlobalLock(hClip);
GlobalUnlock(hClip);
SetDlgItemText(IDC_EDIT_RECV,pBuf);
}
CloseClipboard();
}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值