VS2010环境下MFC,剪贴板“复制”程序。
2013-09-21 12:42
253 查看
其实这个是很简单也很常用的操作,网上有很多类似代码,我从网上的代码中作了一些修改并发出来作个参考。
方便以后调用。当中原理看代码注释。
[cpp]
view plaincopyprint?
void CXXXDlg::EditCopy()
{
// TODO: 在此添加控件通知处理程序代码
CString strSource;
if(OpenClipboard()) //打开剪贴板
{
HGLOBAL clipBuffer;
char *pcBuffer;
EmptyClipboard(); //清空剪贴板内容
GetDlgItemText(IDC_EDIT_XXX, strSource); //从指定ID文本框获取字符串
clipBuffer = GlobalAlloc(GMEM_DDESHARE, strSource.GetLength()+1); //获取内存,长度为字符串长度
pcBuffer = (char *)GlobalLock(clipBuffer);
strcpy_s(pcBuffer, strSource.GetLength()+1, LPCSTR(strSource)); //strcpy_s比strcpy内部多了安全性判断,消除不安全警告
GlobalUnlock(clipBuffer);
SetClipboardData(CF_TEXT, clipBuffer); //设置剪贴板内容
CloseClipboard(); //必须关闭剪贴板
}
}
方便以后调用。当中原理看代码注释。
[cpp]
view plaincopyprint?
void CXXXDlg::EditCopy()
{
// TODO: 在此添加控件通知处理程序代码
CString strSource;
if(OpenClipboard()) //打开剪贴板
{
HGLOBAL clipBuffer;
char *pcBuffer;
EmptyClipboard(); //清空剪贴板内容
GetDlgItemText(IDC_EDIT_XXX, strSource); //从指定ID文本框获取字符串
clipBuffer = GlobalAlloc(GMEM_DDESHARE, strSource.GetLength()+1); //获取内存,长度为字符串长度
pcBuffer = (char *)GlobalLock(clipBuffer);
strcpy_s(pcBuffer, strSource.GetLength()+1, LPCSTR(strSource)); //strcpy_s比strcpy内部多了安全性判断,消除不安全警告
GlobalUnlock(clipBuffer);
SetClipboardData(CF_TEXT, clipBuffer); //设置剪贴板内容
CloseClipboard(); //必须关闭剪贴板
}
}
相关文章推荐
- VS2010环境下MFC,剪贴板“复制”程序。
- OPENNI学习实践-pcl1.6.0+vs2010环境配置以及第一个pcl程序
- 如何从Win32环境编写MFC程序?
- 在无vs2010和opencv环境的电脑上运行opencv程序
- VS2010的MFC对话框程序中添加菜单栏的过程
- VS2010的MFC对话框程序中添加菜单栏的过程
- VS2010 带外部控件的MFC程序的发布
- ABAP程序复制到剪贴板的代码
- vs2010生成的exe程序在运行时,提示计算机丢失mfc100d.dll文件
- 9.4 【OpenCV】 基于 ransac 算法的 sift 特征匹配程序(开发环境为OpenCV2.3.1+VS2010)
- 从其他项目复制cs类文件到新项目后无法引用问题解决方法(开发环境vs2010,asp.net项目)
- cmake编译dcmtk,并利用vs2010 进行开发mfc 程序
- VS2010环境使用MFC操作读取excel2003文件
- VS2010 英文旗舰版 MFC 生成安装程序报错
- 剽窃vs2010 mfc 工程 让程序自动嵌入xp界面风格 系统风格
- VS2010中关于OpenCV 2.3.1开发环境配置及第一个OpenCV程序
- vs2010的“应用程序向导”新建MFC程序报错“当前页面的脚本发送错误”
- 脑上用VS2010编写的VC++程序(使用MFC库
- VS2010编写的MFC串口程序
- (VS2010)MFC程序中F5后有些断点无效