MFC剪贴板通信
来源:互联网 发布:python 汉字转unicode 编辑:程序博客网 时间:2024/06/06 00:54
MFC剪贴板通信
1、建立一个基于对话框的应用程序,界面如下:
2、对两个按钮进行消息响应:
1 void CChipBoardOperateDlg::OnBnClickedBtnCopycb() 2 { 3 // TODO: 在此添加控件通知处理程序代码 4 if( !OpenClipboard() ) 5 { 6 AfxMessageBox( _T("Cannot open the Clipboard!") ); 7 return; 8 } 9 10 // 将剪贴板内容清空,释放数据资源,然后指定当前打开剪贴板的窗口为剪贴板的所有制11 if( !EmptyClipboard() ) 12 {13 AfxMessageBox( _T("Cannot empty the Clipboard!") );14 return;15 }16 17 // 取回当前控件的数据,hData开辟全局内存区域,存放数据18 CStringW str;19 this->GetDlgItemTextW( IDC_EDIT_COPYCB, str );20 size_t cbStr = (str.GetLength()+1)*sizeof(TCHAR);21 HGLOBAL hData = GlobalAlloc(GMEM_MOVEABLE, cbStr);22 memcpy_s( GlobalLock(hData), cbStr, str.LockBuffer(), cbStr );23 GlobalUnlock( hData );24 str.UnlockBuffer();25 26 // 选择合适的格式27 UINT uiFormat = (sizeof(TCHAR)==sizeof(WCHAR)) ? CF_UNICODETEXT : CF_TEXT;28 if(::SetClipboardData( uiFormat, hData ) == NULL )29 {30 AfxMessageBox(_T("Unable to set Clipboard data"));31 CloseClipboard();32 return;33 }34 CloseClipboard();35 }36 37 38 void CChipBoardOperateDlg::OnBnClickedBtnPastecb()39 {40 if( !OpenClipboard() )41 {42 AfxMessageBox( _T("Cannot open the Clipboard!") );43 return;44 }45 46 // 选择合适的格式(读取的时候不用获得剪贴板的拥有权)47 UINT uiFormat = (sizeof(TCHAR)==sizeof(WCHAR) ? CF_UNICODETEXT : CF_TEXT );48 HANDLE hData = ::GetClipboardData( uiFormat );49 if( NULL == hData )50 {51 AfxMessageBox( _T("Unable to get Clipboard data!") );52 CloseClipboard();53 return;54 }55 CStringW str;56 LPCTSTR lpdata = (LPCTSTR)GlobalLock(hData);57 this->SetDlgItemTextW( IDC_EDIT_PASTECB, lpdata );58 GlobalUnlock( hData );59 CloseClipboard();60 }
3、在上边的文本框中输入数据,然后单击SetClipboardData按钮打开剪贴板,将该文本框中数据写入剪贴板,最后关闭剪贴板;
而单击下面的GetClipboardData按钮将打开剪贴板,从剪贴板内读取数据,显示到下面的文本框中,最后关闭剪贴板。
为了显示操作结果的细节,可以打开Word的剪贴板观看过程,效果如下:
0 0
- MFC剪贴板通信
- MFC学习笔记——剪贴板通信
- MFC 剪贴板操作
- MFC使用剪贴板
- 剪贴板通信实例
- 进程通信之剪贴板
- 进程通信_剪贴板
- vc++ mfc 剪贴板操作教程
- MFC 剪贴板使用完全攻略
- vc++之剪贴板通信实例
- vc++之剪贴板通信实例
- 进程间通信 - 剪贴板实现
- 进程间通信 剪贴板功能
- 进程间通信 - 剪贴板实现
- 进程间通信 - 剪贴板实现
- 进程通信 剪贴板 支持UNICODE
- 进程间通信 - 剪贴板实现
- 进程通信——剪贴板
- 一道淘汰85%面试者的百度开发者面试题
- OJ指针——输入n个数和输出调整后的n个数
- SD/MMC
- 韩顺平php视频笔记51-52 数组的概念 创建 遍历
- PB中freefrom(自由报表)中按任意key键处理
- MFC剪贴板通信
- 创业公司布局智慧生活生态圈是挑战还是作死?
- 在win7上python2.7环境下安装cocos-d-0.6.0
- linux user and group
- c# 剪贴板操作
- nodejs初写心得
- Leetcode - Palindrome Number
- linux disk management
- Leetcode - Container With Most Water