VC之线程和进程之用剪贴板实现进程间通信.docVIP

  • 2
  • 0
  • 约2.58千字
  • 约 4页
  • 2017-11-20 发布于北京
  • 举报

VC之线程和进程之用剪贴板实现进程间通信.doc

VC之线程和进程之用剪贴板实现进程间通信

一、创建对话框应用程序工程 二、编辑对话框资源 控件ID及标题 IDD_THREAD_DIALOG??????用剪贴板实现进程间通信 IDC_STATIC??????????????????????????进程1发送数据: IDC_EDIT_SEND IDC_STATIC??????????????????????????进程2接收数据: IDC_EDIT_REC IDC_SEND??????????????????????????? 发送 IDC_REC?????????????????????????????? 接收 三、添加消息响应函数 四、于“ThreadDlg.cpp”文件内添加消息响应函数代码 void CThreadDlg::OnRec() { ?// TODO: Add your control notification handler code here ?if(OpenClipboard()) ?{ ??if(IsClipboardFormatAvailable(CF_TEXT)) ??{ ???HANDLE clipboard; ???char* buf; ???clipboard=GetClipboardData(CF_TEXT); ???buf=(char*)GlobalLock(clipboard); ??????????? GlobalUnlock(clipboard); ???SetDlgItemText(IDC_EDIT_REC,buf); ????? CloseClipboard(); ??} ?}? } void CThreadDlg::OnSend() { ?// TODO: Add your control notification handler code here ?if(OpenClipboard())????????????????????????//打开剪贴板 ?{ ??CString str; ??HANDLE clipboard; ??char * buf; ??EmptyClipboard();??????????????????????? //清空剪贴板 ??GetDlgItemText(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()函数声明 HANDLE? SetClipboardData( ?????????????? UINT? nFormat,?????????????? //剪贴板格式 ?????????????? HANDLE? hMen???????????? //特定格式之数据句柄 ?????????????? ) ?????????????? 功能:以特定剪贴板格式复制数据到剪贴板。函数调用成功,返回数据句柄;失败,返回NULL,可用GetLastError()函数获取详细错误信息。 ??????? 2、GetClipboardData()函数声明 HANDLE? GetClipboardData( ??????????????? UINT? uFormat??????????????? //剪贴板模式 ??????????????? ) ?????????????? 功能:以特定模式获取剪贴板信息。函数调用成功,返回非零值;失败,返回零。 ??????? 3、GlobalLock()函数声明 LPVOID? GlobalLock( ?????????????? HGLOBAL? hMen??????????? //指向全局内存对象之句柄。 ?????????????? ) ?????????????? 功能:锁定一全局内存对象。函数调用成功,返回内存对象第一个字节的指针;失败,返回NULL,可用GetLastError()函数获取详细错误信息。 ??????? 4、GlobalUnlock()函数声明 LPVOID? GlobalUnlock( ?????????????? HGLOBAL? hMen????????????? //指向全局内存对象之句柄。 ????????????? ?) ????

文档评论(0)

1亿VIP精品文档

相关文档