剪析板基本操作

2021-04-08 14:08:24 字數 2074 閱讀 3873

clipboard

問答集

在我們自己的vc++ / mfc應用程式中增加剪貼簿功能其實是很簡單的事情。為了讓你的程式可以與剪貼簿對話,本文就其實現中的一些基本問題做一些例項講解。

拷貝與貼上文字

下邊的源**演示了如何將文字(包含在cstring物件「source」中)拷貝到剪貼簿上。

cstring source;

//put your text in source

if(openclipboard())

反過來,下面的**是用來實現從剪貼簿上取得文字的。

char * buffer = null;

//open the clipboard

cstring fromclipboard;

if ( openclipboard() )

拷貝與貼上wmf(enhanced)資料

你想在你的程式中往剪貼簿上「畫」以及向剪貼簿讀取圖形嗎?請放心,這個不難!示範**如下,其實現的是往剪貼簿上寫一enhanced metafile。

if ( openclipboard() )

好啦,該演示反過來怎麼做的**了。我們從剪貼簿上取得metafile並將其畫到自己的應用程式的客戶區dc(裝置上下文)上(僅僅是個試驗而已,實際上你可能更想將它拷貝乙份兒)。

if ( openclipboard() )

拷貝與貼上一張位圖(bitmap)

拷貝和貼上位圖可是需要一些微妙的處理的,不過基本的思想還是一樣。請看下面的**。

if ( openclipboard() )

如下示例**是從剪貼簿上取得一張位圖,將它貼上到客戶區dc中。

if ( openclipboard() )

建立並使用你自己定做的資料格式

如果你要拷貝、貼上其它格式的資料,可以用registerclipboardformat() api函式先將此格式註冊,然後就可以「為所欲為」了。這簡直是太有用了,尤其是在我們自己的應用程式中拷貝資料。假設我們有下面的結構:

struct myformatdata ;

想將此結構的資料拷貝到剪貼簿上。可以這樣實現:

uint format = registerclipboardformat("my_custom_format");

if(openclipboard())

想把它從剪貼簿上讀下來的話,也容易: //

第二次呼叫時,此格式已經註冊過了,讀下來就行了

uint format = registerclipboardformat("my_custom_format");

myformatdata data;

if ( openclipboard() )

取得剪貼簿變化通知(getting notified of clipboard changes)

一旦剪貼簿上的內容發生改變,我們都希望能夠獲知(經由windows訊息),這是很有用的。你可以用函式setclipboardviewer()來捕獲wm_drawclipboard訊息。

在你的初始化**中呼叫:

setclipboardviewer(); //add us to clipboard change notification chain

在你的訊息對映(message map)中新增:

on_message(wm_drawclipboard, onclipchange) //clipboard change notification

將其定義為:

afx_msg void onclipchange(); //clipboard change notification

實現為:

void cdetectclipboardchangedlg::onclipchange()

將資料貼上到其它應用程式視窗中的方法

我覺得如果能把文字拷貝到剪貼簿上(參見上面的**),然後再在另外乙個應用程式中將這些文字貼上過來,那樣才有用。我寫了乙個很不錯的本地應用程式,此程式使用了含有此技術的第三方的語言翻譯包。很簡單,僅是取得目標視窗的控制代碼,並向它傳送「paste」訊息就ok了。

sendmessage(m_htextwnd, wm_paste, 0, 0);

剪粘板增強小工具 可多次Ctrl V

windows的剪貼簿中儲存是的最新一次的複製結果,比如先複製a,再複製b,c,在按下貼上鍵時貼上的是最後一次的結果c,在工作時有時候會遇到需要多次複製貼上的情景,我就在思考有沒有一款工具可以儲存之前複製的資料到我需要用時再從列表中取出來呢?經過查閱資料後找到有現成的軟體,本文記錄我正在使用的兩款工...

python剪貼簿操作 python 操作剪下板

有時候寫指令碼的時候會有作業系統剪下板的需求,就是 獲取剪下板中的字串 清空剪下板 向剪下板中寫入字串 方法包括使用 tkinter ctypes 這兩個 python 標準庫,或者安裝 qt 等第三方庫來操作剪下板。ctypes 操作剪下板 先寫 windows 系統下 ctypes 庫如何操作剪...

寫入 獲取系統剪帖板中的文字資料

程式截圖如下 主要 如下 往剪貼簿寫入資料函式 bool writedatatoclipboard cstring data return false 從剪貼簿獲取資料函式 cstring getdatafromclipboard cstring data return null 工程是unicod...