資源描述:
《vc之線程和進(jìn)程之用剪貼板實現(xiàn)進(jìn)程間通信》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、一、創(chuàng)建對話框應(yīng)用程序工程二、編輯對話框資源控件ID及標(biāo)題IDD_THREAD_DIALOG??????用剪貼板實現(xiàn)進(jìn)程間通信IDC_STATIC??????????????????????????進(jìn)程1發(fā)送數(shù)據(jù):IDC_EDIT_SENDIDC_STATIC??????????????????????????進(jìn)程2接收數(shù)據(jù):IDC_EDIT_RECIDC_SEND???????????????????????????發(fā)送IDC_REC??????????????????????????????接收三、添加消息響應(yīng)函數(shù)四、于“ThreadDlg.cpp”文件內(nèi)添加消息響應(yīng)函數(shù)
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);??????//空字符作文本數(shù)據(jù)結(jié)尾,多分配一個字節(jié)??strcpy(buf,str);??GlobalUnlock(clipboard);??SetClipboardData(CF_TEXT,clipboard);??CloseClipboard();?}?}五、編譯六、運行七、函數(shù)說明???????1、SetClipboardData()函數(shù)聲明HAND
5、LE?SetClipboardData(??????????????UINT?nFormat,??????????????//剪貼板格式??????????????HANDLE?hMen????????????//特定格式之?dāng)?shù)據(jù)句柄??????????????)??????????????功能:以特定剪貼板格式復(fù)制數(shù)據(jù)到剪貼板。函數(shù)調(diào)用成功,返回數(shù)據(jù)句柄;失敗,返回NULL,可用GetLastError()函數(shù)獲取詳細(xì)錯誤信息。???????2、GetClipboardData()函數(shù)聲明HANDLE?GetClipboardData(???????????????UINT?
6、uFormat???????????????//剪貼板模式???????????????)??????????????功能:以特定模式獲取剪貼板信息。函數(shù)調(diào)用成功,返回非零值;失敗,返回零。???????3、GlobalLock()函數(shù)聲明LPVOID?GlobalLock(??????????????HGLOBAL?hMen???????????//指向全局內(nèi)存對象之句柄。??????????????)??????????????功能:鎖定一全局內(nèi)存對象。函數(shù)調(diào)用成功,返回內(nèi)存對象第一個字節(jié)的指針;失敗,返回NULL,可用GetLastError()函數(shù)獲取詳細(xì)錯誤信息。?
7、??????4、GlobalUnlock()函數(shù)聲明LPVOID?GlobalUnlock(??????????????HGLOBAL?hMen?????????????//指向全局內(nèi)存對象之句柄。??????????????)??????????????功能:解除一全局內(nèi)存對象之鎖定。函數(shù)調(diào)用成功,返回非零值;失敗,返回NULL,可用GetLastError()函數(shù)獲取詳細(xì)錯誤信息。???????5、GlobalAlloc()函數(shù)聲明HGLOBAL?GlobalAlloc(GMEM_MOVEABLE,