设为首页 加入收藏

TOP

剪贴簿(八)
2010-12-30 21:14:24 】 浏览:29898
Tags:剪贴
入剪贴簿和使用者启动一个「Paste」选项期间,您的程式并没有失去输入焦点,但是您也不能假定您放入的东西仍然在那里,一个背景程式有可能已经在这段期间存取过剪贴簿了。

而且,请留意一个与讯息方块有关的更微妙问题:如果不能配置足够的记忆体来将内容复制到剪贴簿,那么您可能希望显示一个讯息方块。但是,如果这个讯息方块不是系统模态的,那么使用者可以在显示讯息方块期间切换到另一个应用程式中。您应该使用系统模态的讯息方块,或者在您显示讯息方块之前关闭剪贴簿。

如果您在显示一个对话方块时将剪贴簿保持为打开状态,那么您还可能遇到其他问题,对话方块中的编辑栏位会使用剪贴簿进行文字的剪贴。

剪贴簿和Unicode
 

迄今为止,我只讨论了用剪贴簿处理ANSI文字(每个字元对应一个位元组)。我们用CF_TEXT识别字时就是这种格式。您可能对CF_OEMTEXT和CF_UNICODETEXT还不熟悉吧。

我有一些好消息:在处理您所想要的文字格式时,您只需呼叫SetClipboardData和GetClipboardData,Windows将处理剪贴簿中所有的文字转换。例如,在Windows NT中,如果一个程式用SetClipboardData来处理CF_TEXT剪贴簿资料型态,程式也能用CF_OEMTEXT呼叫GetClipboardData。同样地,剪贴簿也能将CF_OEMTEXT资料转换为CF_TEXT。

在Windows NT中,转换发生在CF_UNICODETEXT、CF_TEXT和CF_OEMTEXT之间。程式应该使用对程式本身而言最方便的一种文字格式来呼叫SetClipboardData 。同样地,程式应该用程式需要的文字格式来呼叫GetClipboardData。我们已经知道,本书附上的程式在编写时可以带有或不带UNICODE识别字。如果您的程式也依此编写,那么在定义了UNICODE识别字之後,程式将执行带有CF_UNICODETEXT参数的SetClipboardData以及GetClipboardData呼叫,而不是CF_TEXT。

CLIPTEXT程式,如程式12-1所示,展示了一种可行的方法。

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

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目