程序通訊的方式很多,可以通過套接字,管道,記憶體共享,wm_copydata訊息,當然剪下板也是一種方式,並且在以後的環節還可能用得比較多。
使用剪下板的步驟主要是: 開啟剪下板,
傳送端**大概如下:
hwnd hedit = getdlgitem(hwnd, idc_edit_input);
tchar szedit[100] = ;
getwindowtext(hedit, szedit, 99);//得到編輯框中的資料
if (!openclipboard(hwnd))//如果開啟失敗則返回
emptyclipboard();//清空剪下板資料
hglobal hglobal= globalalloc(gmem_fixed, 100);//分配一塊固定大小的記憶體
tchar *buff = (tchar *)hglobal;
globallock(hglobal);//鎖定該區域記憶體
memcpy(buff, szedit, 99);//將值拷貝過去
setclipboarddata(cf_text, hglobal);//設定資料格式
globalunlock(hglobal);//解鎖該區域
closeclipboard();//關閉剪下板,這裡很重要,如果這裡忘記了關閉,其他程序則無法使用剪下板,不能得到剪下板中的資料。
hwnd hfind = findwindow(null, l"output");
//再次提醒,傳送之前一定要先關閉剪下板。
sendmessage(hfind, wm_paste, 0, 0);
接收端通過得到wm_paste訊息,對該訊息進行處理,可以方便的操作剪下板中的資料:
case wm_paste:
handle hclipdata = getclipboarddata(cf_text);
tchar *buff =(tchar *) globallock(hclipdata);
setwindowtext(getdlgitem(hwnd, idc_static_output), buff);
closeclipboard();
} break;
接收端也可以是使用edit,來追加一段資料:
case wm_paste:
closeclipboard();
} break;
windows剪下板暫存
有乙個同事想出乙個方法,使用剪下板來代替pasterhtml這樣的操作,因為貼上乙個html有格式的內容是可以撤銷的,這樣就又會涉及到乙個問題,如果借用了剪下板的內容就需要備份之前的內容,並在使用完之後恢復,不管原來是 純文字 還是word 帶格式的複雜的內容。首先在msdn上找到這篇文章 因為我需...
C 剪下板程式設計
c 定義了乙個類system.windows.forms.clipboard來簡化剪下板操作,這個類有乙個靜態方法,主要有 clear 清除剪下板中的所有資料 containsdata,containsaudio,containsfliedroplist,containstext,containsi...
剪下板操作 複製,剪下
copyfile.h pragma once include include include include include include using namespace std class ccopyfilesoper copyfile.cpp include stdafx.h include ...