网站首页 美食营养 游戏数码 手工爱好 生活家居 健康养生 运动户外 职场理财 情感交际 母婴教育 时尚美容

MFC应用实例:[63]粘贴板复制数据

时间:2024-10-14 03:35:40

1、新建一个基于对话框的应用程序,工程名为ClipBoardDemo。

MFC应用实例:[63]粘贴板复制数据

2、界面设计如下,添加两个个按钮,两个列表框,两个文本控件。

MFC应用实例:[63]粘贴板复制数据

3、对“复制到剪切板”按钮添加响应函数OnCopy(),磨蓄贺痞响应函数OnCopy()代码如下:void CClipBoardDemo肛舀辨乔Dlg::OnCopy(){ COleDataSource* pSource=new COleDataSource(); CSharedFile sf(GMEM_MOVEABLE|GMEM_DDESHARE|GMEM_ZEROINIT); char* strText; strText=new char[40];//存储从文件读取的数据 for(int i=0;i<m_booklist.GetCount();i++) { m_booklist.GetText(i,strText);//获取列表框数据 sf.Seek(40*i,CFile::begin);//定位文件指针 sf.Write(strText,40);//写文件数据 } HGLOBAL hMem=sf.Detach(); if(!hMem) return; pSource->CacheGlobalData(CF_TEXT,hMem); pSource->SetClipboard();//添加到剪切板中}

MFC应用实例:[63]粘贴板复制数据

4、对“从剪切板粘贴数据”按钮添加响应函数OnPlaste(),响应函数OnPlaste()代码如下:void 潮贾篡绐CClipBoardDemoDlg::OnPlaste(){ COleDataObject obj; if(obj.AttachClipboard()) { if(obj.IsDataAvailable(CF_TEXT)) { HGLOBAL hmem=obj.GetGlobalData(CF_TEXT); CMemFile mf((BYTE*)::GlobalLock(hmem),::GlobalSize(hmem)); char* strText; strText=new char[40];//存储从文件读取的数据 int i=0; mf.SeekToBegin(); while(mf.Read(strText,40)!=0)//读出的文件不为空 { if((CString)strText=="") return; m_booklist2.AddString((CString)strText); i++; mf.Seek(40*i,CFile::begin);//定位文件指针 } ::GlobalUnlock(hmem); } }}

MFC应用实例:[63]粘贴板复制数据

5、程序运行如下:

MFC应用实例:[63]粘贴板复制数据
© 2025 小知经验
信息来自网络 所有数据仅供参考
有疑问请联系站长 site.kefu@gmail.com