windows程式設計之剪下板

2021-07-04 18:15:01 字數 1245 閱讀 6535

程序通訊的方式很多,可以通過套接字,管道,記憶體共享,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 ...