设为首页 加入收藏

TOP

剪贴簿(七)
2010-12-30 21:14:24 】 浏览:29877
Tags:剪贴
再做一次检查(使用同样的函式或其他方法),以便确定CF_TEXT资料是否仍然留在剪贴簿中。

为了传送出文字,首先打开剪贴簿:

会得到代表文字的记忆体块代号:

如果剪贴簿不包含CF_TEXT格式的资料,此代号就为NULL。这是确定剪贴簿是否含有文字的另一种方法。如果GetClipboardData传回NULL,则关闭剪贴簿,不做其他任何工作。

从GetClipboardData得到的代号并不属於使用者程式-它属於剪贴簿。仅在GetClipboardData和CloseClipboard呼叫之间这个代号才有效。您不能释放这个代号或更改它所引用的资料。如果需要继续存取这些资料,必须制作这个记忆体块的副本。

这里有一种将资料复制到使用者程式中的方法。首先,配置一块与剪贴簿资料块大小相同的记忆体块,并配置一个指向该块的指标:

再次呼叫hGlobal ,而hGlobal是从GetClipboardData呼叫传回的整体代号。现在锁定代号,获得一个指向剪贴簿块的指标:

现在就可以复制资料了:

或者,您可以使用一些简单的C程式码:

在关闭剪贴簿之前先解锁记忆体块:

现在您有了一个叫做pText的指标,以後程式的使用者就可以用它来复制文字了。

打开和关闭剪贴簿
 

在任何时候,只有一个程式可以打开剪贴簿。呼叫OpenClipboard的作用是当一个程式使用剪贴簿时,防止剪贴簿的内容发生变化。OpenClipboard传回BOOL值,它说明是否已经成功地打开了剪贴簿。如果另一个应用程式没有关闭剪贴簿,那么它就不能被打开。如果每个程式在回应使用者的命令时都尽快地、遵守规范地打开然後关闭剪贴簿,那么您将永远不会遇到不能打开剪贴簿的问题。

但是,在不遵守规范程式和优先权式多工环境中,总会发生一些问题。即使在您的程式将某些东西放

首页 上一页 4 5 6 7 8 9 10 下一页 尾页 7/27/27
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇VC中各种后缀文件含义 下一篇对话方块

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目