(本来就能)跨进程的剪切板
来源:互联网 发布:mac照片薄怎么删除 编辑:程序博客网 时间:2024/04/29 17:59
<span style="font-size:14px;">void CMy0629ADlg::OnBnClickedButton1()//复制进剪切{// TODO: Add your control notification handler code hereif(<strong><span style="color:#cc33cc;">this->OpenClipboard()</span></strong>)//打开剪切板 {CString str;<span style="white-space:pre"></span>//HANDLE hClip;<span style="white-space:pre"></span>//保存::GlobalAlloc函数分配的内存对象的句柄char* pBuf;<span style="white-space:pre"></span>//保存::GlobalLock函数返回的地址::EmptyClipboard();<span style="white-space:pre"></span>//清空剪切板 释放剪切板上数据的句柄<strong>(实验证明此行代码没用)</strong><span style="white-space:pre"></span>//并将剪切板所有权分配给当前窗口this->GetDlgItemTextA(IDC_EDIT1,str);hClip=::GlobalAlloc(GMEM_MOVEABLE,str.GetLength()+1);//分配内存对象pBuf=(char*)::GlobalLock(hClip);//<strong><span style="color:#cc0000;">句柄转void*再强转char*</span></strong>strcpy(pBuf,str);<span style="white-space:pre"></span>//修改了pBufr 也就修改了hClip 因为他们是同一个地址::GlobalUnlock(hClip);//对该内存块解锁 <strong>(实验证明此行代码没用)<span style="color:#cc33cc;">::SetClipboardData(CF_TEXT,hClip);<span style="white-space:pre"></span></span></strong><span style="font-family: Arial, Helvetica, sans-serif;">//向剪切板放置数据<span style="white-space:pre"></span><strong><span style="color:#cc33cc;">核心代码</span></strong></span>//::SetClipboardData(CF_TEXT,NULL);<span style="white-space:pre"></span>//第二个参数<strong><span style="color:#cc0000;">如果为NULL</span></strong> 将会使用"<u><span style="color:#cc0000;">延迟提交技术</span></u>"</span>
<span style="font-size:14px;"><span style="white-space:pre"></span>//<u><span style="color:#cc0000;">当有别进程向剪切板要内容时,会向当前窗口发<span style="font-family: Arial, Helvetica, sans-serif;">WM_RENDERFORMAT消息</span></span></u>::CloseClipboard();<span style="white-space:pre"></span>//关闭剪切版如果不关 其他进程再无法打开剪切板}}</span>
<span style="font-size:14px;">void CMy0629ADlg::OnBnClickedButton2(){// TODO: Add your control notification handler code hereif(this->OpenClipboard())//打开剪切板 {if(::IsClipboardFormatAvailable(CF_TEXT)){HANDLE hClip;char* pBuf;hClip=::GetClipboardData(CF_TEXT);pBuf=(char*)::GlobalLock(hClip);::GlobalUnlock(hClip);this->SetDlgItemTextA(IDC_EDIT2,pBuf);}::CloseClipboard();}}</span>
<span style="font-size:14px;">BEGIN_MESSAGE_MAP(CMy0629ADlg, CDialogEx)ON_WM_PAINT()ON_WM_QUERYDRAGICON()ON_BN_CLICKED(IDC_BUTTON1, &CMy0629ADlg::OnBnClickedButton1)ON_BN_CLICKED(IDC_BUTTON2, &CMy0629ADlg::OnBnClickedButton2)<strong>ON_MESSAGE(WM_RENDERFORMAT, &CMy0629ADlg::OnRenderformat)</strong>END_MESSAGE_MAP()</span>
<span style="font-size:14px;">afx_msg LRESULT CMy0629ADlg::OnRenderformat(WPARAM wParam, LPARAM lParam){//::AfxMessageBox("进入OnRenderformat");HANDLE hClip;char* pBuf;CString str="此段字符串来自于延迟提交技术";hClip=::GlobalAlloc(GMEM_MOVEABLE,str.GetLength()+1);pBuf=(char*)::GlobalLock(hClip);strcpy(pBuf,str);::SetClipboardData(CF_TEXT,hClip);return 0;}</span>
0 0
- (本来就能)跨进程的剪切板
- Android跨进程数据通讯-剪切板Clipboard
- 人嘛,本来就复杂。
- 杂志本来就不是靠海尔吃饭的
- Java课程的设置本来就应该这样!!
- 人生本来就有很多事是徒劳无功的,…
- 跨进程的CRITICAL_SECTION
- Bitmap 的跨进程
- 跨进程的双向通信
- 生活本来就不完美
- 跨进程的SHOWMODAL效果
- 跨进程程序设计的模式
- Android的跨进程通信
- android的跨进程访问
- 跨进程的通信 [IPC]
- 跨进程的通信 [IPC]
- Android的跨进程通信
- 微软的Bug 还是本来就这样?树形控件 TreeView 不解!
- 利用sqoop将hive数据导入导出数据到mysql
- hessian学习
- C#趣味程序---真分数序列
- 基于IDEA使用Spark API开放Spark程序(1)
- JSP基础知识
- (本来就能)跨进程的剪切板
- Android http 相关
- 手机组态软件_安卓平板组态软件_移动端组态
- Emgu英文教程
- Android-67-Tomcat启动出错:Server Tomcat v7.0 Server at localhost failed to start.
- iOS设备尺寸、像素对照表
- 每天一个linux命令(50):crontab命令
- 【js】判断对象类型
- *常用算法之冒泡算法*