设为首页 加入收藏

TOP

剪贴簿(五)
2010-12-30 21:14:24 】 浏览:29870
Tags:剪贴
ANDLE型态的变数:

然後配置记忆体。例如:

与处理其他Windows代号一样,您不必担心数字的实际意义,只要照著作就好了。需要存取记忆体块时,可以呼叫:

此函式将代号转换为指标。在记忆体块被锁定期间,Windows将固定虚拟记忆体中的位址,不再移动那块记忆体。存取结束後呼叫:

这将使Windows可以在虚拟记忆体中移动记忆体块。要真正确保此程序正常运作(体验早期Windows程式写作者的痛苦经历),您应该在单一个讯息处理期间锁定和解锁记忆体块。

在释放记忆体时,呼叫GlobalFree应使用代号而不是指标。如果您现在不能存取代号,可以使用下面的函式:

在解锁之前,您能够多次锁定一个记忆体块。Windows保留一个锁定次数,而且在记忆体块可被自由移动之前,每次锁定都需要相对应的解锁。当Windows在虚拟记忆体中移动一个记忆体块时,不需要将位元组从一个位置复制到另一个,只需巧妙地处理记忆体页映射表。通常,让32位元Windows为您的程式配置可移动的记忆体块,其唯一确实的理由只是避免虚拟记忆体的空间碎裂出现。使用剪贴簿时,也应该使用可移动记忆体。

为剪贴簿配置记忆体时,您应该以GMEM_MOVEABLE和GMEM_SHARE旗标呼叫GlobalAlloc函式。GMEM_SHARE旗标使得其他应用程式也可以使用那块记忆体。

将文字传送到剪贴簿
 

让我们想像把一个ANSI字串传送到剪贴簿上,并且我们已经有了指向这个字串的指标(pString)。现在希望传送这个字串的iLength字元,这些字元可能以NULL结尾,也可能不以NULL结尾。

首先,通过使用GlobalAlloc来配置一个足以储存字串的记忆体块,其中还包括一个终止字元NULL:

如果未能配置到记忆体块,hGlobal的值将为NULL 。如果配置成功,则锁定这块记忆体,并得到指向它的一个指标:

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

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目