以ASCII编码的文本为例:
复制操作:
char sc[]="要复制的文本"; HGLOBAL hmem=NULL; if (OpenClipboard()) //是否成功打开剪帖板 { if (EmptyClipboard())//清空成功,则继续 { hmem=GlobalAlloc(GHND,sizeof(sc));//memalloc strlen+1 \0 char* pmem= (char*)GlobalLock(hmem); memcpy(pmem,sc,sizeof(sc)); // SetClipboardData() SetClipboardData(CF_TEXT,hmem); GlobalUnlock(hmem); } //关闭剪贴板 CloseClipboard(); }
粘贴操作:
//一、 判断剪贴数据格式是否是我们需要的 HGLOBAL hmem=NULL; char s[256]=""; if (IsClipboardFormatAvailable(CF_TEXT)) //CF_UNICODETEXT { //二、 打开剪贴板 if (OpenClipboard()) { //三、 获取剪贴板句柄 hmem=GetClipboardData(CF_TEXT); if (hmem) { //四、 锁定全局内存获取缓冲区指针, char* ps=(char*)GlobalLock(hmem); //取出数据 memcpy(s,ps,GlobalSize(hmem)); //五、 关闭剪贴板,以使其它程序可以访问,释放掉内存锁 GlobalUnlock(hmem); } CloseClipboard(); } }
MFC中对于剪切板的简单操作
时间: 2024-10-08 14:03:17