VC 下Window剪貼簿的操作

2021-09-30 06:11:36 字數 1676 閱讀 2216

在richeditview中儲存檔案時用「static dword callback cbstreamout」函式對於大於1m的檔案耗時太長,原因在於這個函式每次都只能寫很少內容,要多次呼叫造成的,我想利用剪貼簿一次讀取全部內容來解決時間問題,以下是網上的剪貼簿操作方法。

1、文字內容的操作

2、wmf資料的操作

3、點陣圖的操作

4、設定使用自定義格式

5、感知剪貼簿內容的改變

6、自動將資料貼上到另一應用程式視窗

一、文字內容的操作

下面的**示範了如何將文字內容複製到剪貼簿: cstring source;

//文字內容儲存在source變數中

if(openclipboard())

下面的**顯示了如何從剪貼簿上獲得文字內容: char * buffer = null;

//開啟剪貼簿

cstring fromclipboard;

if ( openclipboard() )

二、wmf資料的操作

在剪貼簿上讀寫圖象資料是非常有用的功能,並且實現起來也很簡單。下面的**顯示了如何將擴充套件圖元檔案複製到剪貼簿:

if(openclipboard());

下面的**演示了從剪貼簿獲得圖元檔案並將其繪製到client dc上: if(openclipboard())

三、點陣圖的操作

點陣圖的操作稍微複雜一點,下面這個例子顯示了如何在剪貼簿儲存位圖: if(openclipboard())

下面的**顯示了如何從剪貼簿上獲得位圖資料: if(openclipboard())

四、設定並使用自定義格式

使用registerclipboardformat()函式,可以複製和貼上任何你需要的資料型別。比如我們有以下乙個資料型別: struct myformatdata

;我們要把它複製到剪貼簿,可以使用如下的**: uint format = registerclipboardformat("my_custom_format");

if(openclipboard())

讀取資料使用以下**:

uint format = registerclipboardformat("my_custom_format");

myformatdata data;

if(openclipboard())

五、感知剪貼簿內容的改變

通過windows訊息可以感知剪貼簿內容是否發生改變,**如下: in your initialization code call:

setclipboardviewer(); //將我們的程式新增到剪貼簿觀察鏈

in your message map add:

on_message(wm_drawclipboard, onclipchange) //新增message handle

which is declared as:

afx_msg void onclipchange();

finally implement:

void cdetectclipboardchangedlg::onclipchange()

六、自動將資料貼上到另一應用程式視窗

只需獲得相應視窗的控制代碼,並傳送乙個訊息就可以了:

sendmessage(m_htextwnd, wm_paste, 0, 0);

希望用這種方法可以解決。

VC 剪貼簿操作

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

VC 剪貼簿操作

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

VC的剪貼簿操作

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