windows 程序设计 剪切板

剪切板:系统维护的一个全局公共内存区域.每次只允许一个进程对其进行访问。

剪切板操作方法如下:(MSDN上搜索Clipboard Operations)

1.打开剪切板
Bool OpenClipboard(HWND hWndNewOwner);
  指定关联到打开的剪切板的窗口句柄,传入NULL表示关联到当前任务。每次只允许一个进程打开并访问。

每打开一次就要关闭,否则其他进程无法访问剪切板。


2.清空剪切板
Bool EmptyClipboard(void)

  写入前必须先清空,得到剪切板占有权

3.分配内存
HGLOBAL GlobalAlloc(UINT uFlags, SIZE_T dwBytes);
  在堆上动态分配以字节为单位的内存区域。成功则指向该内存,失败NULL。参数:1.分配内存属性, 2.分配的大小


4.锁定内存
LPVOID GlobalLock(HGLOBAL hMem);
  锁定由GlobalAlloc分配的内存,并将内存对象的锁定计数器+1,成功返回指向内存对象起始地址的指针。失败NULL

系统为每个全局内存对象维护一个锁定计数器,初始为0,GlobalLock使计数器+1,GlobalUnLock计数器-1.一旦计数器值大于0,

这块内存区域将不允许被移动或删除,只有当为0时,才解除对这块内存的锁定。如果分配时GMEM_FIXED属性,计数器一直为0

5.设置剪切板
HANDLE SetClipboardData(UINT uFormat, HANDLE hMem);

  执行成功,返回数据句柄,否则返回NULL

6.解除锁定
BOOL GlobalUnlock(HGLOBAL hMem);
  将GlobalAlloc分配的属性为GMEM_MOVEABLE的内存对象计数器-1.

 

7.关闭剪切板
Bool CloseClipboard(void);

  必须关闭剪切板其他进程才能使用剪切板,且关闭后当前进程就不能写入数据。

8.获取剪切板数据
HANDLE GetClipboardData(UINT uFormat);

  执行成功,返回数据句柄,否则返回NULL数据格式,指定格式的数据的句柄

 

一:UINT uFormate格式说明:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值