選擇剪貼板格式順序

此文源自http://social.msdn.microsoft.com/Forums/en/windowssdk/thread/94bb2db4-3ca2-4cd8-9f7c-6dd9aab6fd18的討論

在複製數據到剪貼板時,一個應用程序應該提供儘可能多的格式使得更多的程序能夠識別剪貼板上的數據。例如IE將複製的HTML保存爲CF_UNICODETEXT、CF_TEXT和CF_HTML等格式。

很多程序在識別剪貼板數據的時候,在找到第一個支持的格式時就停止搜索。有的程序支持粘貼時選擇格式(例如Word裏面的選擇性粘貼),但是這樣的程序是例外,在粘貼時支持多種剪貼板格式的程序並不多。爲了避免數據往返時的數據丟失,在決定剪貼板格式順序的時候,包含最多信息的格式應該放在第一個,而包含較少的放在後面,包含最少信息的放在最後。舉例來說,CF_HTML 第一, CF_UNICODETEXT第二,CF_TEXT最後。在複製一個jpeg圖片到剪貼板的時候,可以以如下順序填充剪貼板:CF_HDROP、CFSTR_FILECONTENTS、CFSTR_FILENAME、CFSTR_MIME_JPEG、CF_DIB、CF_PALETTE 、CF_METAFILEPICT、CF_ENHMETAFILE、CF_DIBV5。

當然,有時候你想限制剪貼板上的數據的格式,例如在從Visual Studio複製代碼但是期望在粘貼代碼的時候不包含格式,那麼你可能像要把一個信息量較少的數據格式放在最前面。 

如果你使用一個瀏覽器作爲文本編輯器,你可以通過實現OnFilterDataObject在粘貼的時候去掉文字的格式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章