操作剪貼簿

2021-04-13 21:20:23 字數 1257 閱讀 7691

剪貼簿:

一、將資料送到剪貼簿

<1>、記憶體配置

hglobal  hglobal ;

hglobal = globalalloc (ghnd | gmem_share,(lstrlen (ptext) + 1) * sizeof (tchar)) ;

為什麼不用malloc: 在windows中執行的應用程式之間必須要共享剪貼簿所儲存的記憶體塊

<2>、鎖定剛分配的記憶體

ptstr    pglobal ;

pglobal =  (tchar*)globallock (hglobal);

為什麼要鎖定?windows將固定虛擬記憶體中的位址,不再移動那塊記憶體

<3>、寫入資料

lstrcpy (pglobal, ptext) ;

<4>、解鎖定

globalunlock (hglobal) ;

這將使windows可以在虛擬記憶體中移動記憶體塊.(不要把鎖定的記憶體控制代碼交給剪貼簿)

<5>、開啟剪貼簿並把它清空

openclipboard () ;

emptyclipboard () ;

<6>、利用cf_text識別符號把記憶體控制代碼交給剪貼簿,關閉剪貼簿:

setclipboarddata (cf_text, hglobal) ;

closeclipboard () ;

二、從剪貼簿獲取資料

<1>、開啟剪貼簿

openclipboard () ;

<2>、確定剪貼簿是否含有文字

hglobal  hglobal ;

if( hglobal = getclipboarddata(cf_text) )

如果hglobal為null則說明 剪貼簿中沒有文字. 得到的控制代碼並不屬於使用者程式-它屬於剪貼簿

<3>、鎖定剪貼簿

ptstr    pglobal ;

pglobal =  (tchar*)globallock (hglobal);

<4>、配置一塊與剪貼簿資料塊大小相同的記憶體塊,並配置乙個指向該塊的指標:

ptstr    ptext;

ptext = (tchar*) malloc (globalsize (hglobal)) ;

<5>、讀出資料

lstrcpy (ptext, pglobal) ;

<6>、解鎖定

globalunlock (hglobal) ;

<7>、關閉剪貼簿

closeclipboard () ;

VC 剪貼簿操作

本文主要介紹了 vc mfc 中如下內容的剪貼簿操作 1 文字內容的操作2 wmf資料的操作 3 點陣圖的操作 4 設定使用自定義格式 5 感知剪貼簿內容的改變 6 自動將資料貼上到另一應用程式視窗 一 文字內容的操作 下面的 示範了如何將文字內容複製到剪貼簿 unicode 編碼的先轉化為 asc...

Visual C 剪貼簿操作

visual c 剪貼簿操作 2008 07 30 15 01 visual c 剪貼簿操作 文章摘要 1 文字內容的操作 2 wmf資料的操作 3 點陣圖的操作 4 設定使用自定義格式 5 感知剪貼簿內容的改變 6 自動將資料貼上到另一應用程式視窗 一 如何將文字內容複製到剪貼簿 cstring ...

VC 剪貼簿操作

vc mfc 中如下內容的剪貼簿操作 1 文字內容的操作2 wmf資料的操作 3 點陣圖的操作 4 設定使用自定義格式 5 感知剪貼簿內容的改變 6 自動將資料貼上到另一應用程式視窗 一 文字內容的操作 下面的 示範了如何將文字內容複製到剪貼簿 unicode 編碼的先轉化為 ascii cstri...