当前位置导航:炫浪网>>网络学院>>编程开发>>C++教程>>Visual C++教程

Visual C++剪贴板操作不完全攻略

    经常在论坛上见到一些使用者询问如何在Visual C++中如何实现对剪贴板的操作,其实在VC++/MFC中是相当简单的。本文主要介绍了如下内容:

    1、文本内容的操作

    2、WMF数据的操作

    3、位图的操作

    4、设置使用自定义格式

    5、感知剪贴板内容的改变

    6、自动将数据粘贴到另一应用程序窗口

    一、文本内容的操作

    下面的代码示范了如何将文本内容复制到剪贴板:

 Cstring source;
//文本内容保存在source变量中
if(openClipboard())
{
HGLOBAL clipbuffer;
char * buffer;
EmptyClipboard();
clipbuffer = GlobalAlloc(GMEM_DDESHARE, dource.GetLength()+1);
buffer = (char*)GlobalLock(clipbuffer);
Strcpy(buffer, LPCSTR(source));
GlobalUnlock(clipbuffer);
SetClipboardData(CF_TEXT,clipbuffer);
CloseClipboard();
}
    下面的代码显示了如何从剪贴板上获得文本内容:
 char * buffer = NULL;
//打开剪贴板
CString fromClipboard;
if ( OpenClipboard() )
{
HANDLE hData = GetClipboardData(CF_TEXT);
char * buffer = (char*)GlobalLock(hData);
fromClipboard = buffer;
GlobalUnlock(hData);
CloseClipboard();
}

    二、WMF数据的操作

    在剪贴板上读写图象数据是非常有用的功能,并且实现起来也很简单。下面的代码显示了如何将扩展图元文件复制到剪贴板:

 if(OpenClipboard());
{
EmptyClipboard();
//创建图元文件DC
CMetaFileDC * cDC = new CMetaFileDC();
cDC->CreateEnhanced(GetDC(),NULL,NULL,"the_name");
//调用绘图例程
//关闭CMetafileDC并获得它的句柄
HENHMETAFILE handle = cDC->CloseEnhanced();
//复制到剪贴板
SetClipBoardData(CF_ENHMETAFILE,handle);
CloseClipboard();
//删除dc
delete cDC;
}

 

 

共3页 首页 上一页 1 2 3 下一页 尾页 跳转到
相关内容
赞助商链接