日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

关于如何获取剪切板的多个图片处理

發布時間:2023/12/13 综合教程 38 生活家
生活随笔 收集整理的這篇文章主要介紹了 关于如何获取剪切板的多个图片处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

  說實話真的沒辦法,剪切板是個很坑人的東西,它對于放進去的東西就是一次性,如果你想放進去一張圖片,然后再塞一張,這是不可能的,但是如果對于不同格式,比如一個是圖片格式,一個是文本格式,它是可以放多個不同格式的。

  這段時間我也是一直在研究如何來解決這個問題,可是得出來的結論就是:對于你想要將多個圖片放在剪切板就只能自己新定義一個剪切板的格式,然后自己識別它,不要妄想其他人能夠懂你的東西,不太現實,所以這種東西,就是你自己定義,你自己用的,當然其他的軟件也是,對于這樣的都是自己的定義,所以你想要支持他們的,就只能去拿人家的定義來自己解釋出來。

  比如說 office 這個東西我就研究了很久,雖然沒得出最后如何處理的方法,還是留下一些我的研究成果,幫助下。從office復制出兩個圖片時,它會扔出16個消息,先說這些消息是如何拿到的。

UINT format = 0;
char szFormatName[80];
LPCSTR lpFormatName;
while (format = ::EnumClipboardFormats(format))
{

}

  這樣format 就是儲存在剪切板中的格式。這些就是正常的格式,那么不正常的,也就是別人隨便定義該怎么辦呢。

提供了其他的方法:

1 while (format = ::EnumClipboardFormats(format))
2 {
3     int iformat = ::GetClipboardFormatNameA(format, szFormatName,
4     sizeof(szFormatName));
5     lpFormatName = szFormatName;
6 }

  這里的iformat 就是隨便定義的格式,GetClipboradFormatNameA 這個方法很重要,它會拿出不是正常的系統類型,要是正常的類型時會返回0,也就是iformat會等于0,而且要視情況使用,當初我就是用GetClipboradFormatName 得不到數據,這個lpFormatName 就是用來存儲對應的指針,數據應該就是從這里拿出去。

  再說說 office的那個兩張圖片的數據格式:(負值是我自己寫上,用來區分自己定義和系統定義的)

類型名 類型整型值 系統新類型名
DataObject 10
Object Descriptor 17
Rich Text Format 16
HTML Format 11
HTML Format -13 CF_UNICODETEXT
HTML Format -14 CF_ENHMETAFILE
HTML Format -3 CF_METAFILEPICT
Embed Source 12
Native 6
OwnerLink 9
Link Source 11
Link Source Descriptor 22
objectLink 10
Hyperlink 9
Ole Private Data 16
Ole Private Data -16 CF_LOCALE
Ole private Data -7 CF_OEMTEXT

  這就是office 給出來的格式,我大概也就到這步了,我是不知道該用什么樣的辦法,來將他們中的圖片格式顯示出來,要研究出來可能要更久,暫時放棄了,如果有什么新的辦法可以留言的。

提供一些剪切板操作的參考網站:(太多了,我就貼個圖,自己Google 或者百度)

總結

以上是生活随笔為你收集整理的关于如何获取剪切板的多个图片处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。