欢迎来到天天文库
浏览记录
ID:34419029
大小:128.50 KB
页数:4页
时间:2019-03-06
《vc之线程和进程之用剪贴板实现进程间通信》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、一、创建对话框应用程序工程二、编辑对话框资源控件ID及标题IDD_THREAD_DIALOG 用剪贴板实现进程间通信IDC_STATIC 进程1发送数据:IDC_EDIT_SENDIDC_STATIC 进程2接收数据:IDC_EDIT_RECIDC_SEND 发送IDC_REC 接收三、添加消息响应函数四、于“ThreadDlg.cpp”文件内添加消息响应函数
2、代码voidCThreadDlg::OnRec(){ //TODO:Addyourcontrolnotificationhandlercodehere if(OpenClipboard()) { if(IsClipboardFormatAvailable(CF_TEXT)) { HANDLEclipboard; char*buf; clipboard=GetClipboardData(CF_TEXT); buf=(char*)GlobalLock(clipboard); GlobalUnlock(clipboard); SetDlg
3、ItemText(IDC_EDIT_REC,buf); CloseClipboard(); } } }voidCThreadDlg::OnSend(){ //TODO:Addyourcontrolnotificationhandlercodehere if(OpenClipboard()) //打开剪贴板 { CStringstr; HANDLEclipboard; char*buf; EmptyClipboard(); //清空剪贴板 GetDlgItemText(
4、IDC_EDIT_SEND,str); clipboard=GlobalAlloc(GMEM_MOVEABLE,str.GetLength()+1); buf=(char*)GlobalLock(clipboard); //空字符作文本数据结尾,多分配一个字节 strcpy(buf,str); GlobalUnlock(clipboard); SetClipboardData(CF_TEXT,clipboard); CloseClipboard(); } }五、编译六、运行七、函数说明 1、SetClipboardData()函数声明HAND
5、LE SetClipboardData( UINT nFormat, //剪贴板格式 HANDLE hMen //特定格式之数据句柄 ) 功能:以特定剪贴板格式复制数据到剪贴板。函数调用成功,返回数据句柄;失败,返回NULL,可用GetLastError()函数获取详细错误信息。 2、GetClipboardData()函数声明HANDLE GetClipboardData( UINT
6、uFormat //剪贴板模式 ) 功能:以特定模式获取剪贴板信息。函数调用成功,返回非零值;失败,返回零。 3、GlobalLock()函数声明LPVOID GlobalLock( HGLOBAL hMen //指向全局内存对象之句柄。 ) 功能:锁定一全局内存对象。函数调用成功,返回内存对象第一个字节的指针;失败,返回NULL,可用GetLastError()函数获取详细错误信息。
7、 4、GlobalUnlock()函数声明LPVOID GlobalUnlock( HGLOBAL hMen //指向全局内存对象之句柄。 ) 功能:解除一全局内存对象之锁定。函数调用成功,返回非零值;失败,返回NULL,可用GetLastError()函数获取详细错误信息。 5、GlobalAlloc()函数声明HGLOBAL GlobalAlloc(GMEM_MOVEABLE,
此文档下载收益归作者所有