在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...