Windows API一日一练(86)GetClipboardData函数
前面介紹怎么樣把數據放到剪貼板里面,那么又是怎么樣從剪貼板里面獲取數據出來呢?當然還是需要使用其它的API函數來獲取剪貼板里的數據。獲取剪貼板里的數據時,是不知道當前剪貼板里是否有數據的,也不知道剪貼板里的數據格式是什么。那么下面就來解決這兩個問題,先使用函數IsClipboardFormatAvailable來獲取剪貼板里的格式是否可以處理,接著使用函數OpenClipboard打開剪貼板,然后使用函數GetClipboardData來獲取剪貼板數據。
?
函數GetClipboardData聲明如下:
?
WINUSERAPI
HANDLE
WINAPI
GetClipboardData(
??? __in UINT uFormat);
uFormat是剪貼板的格式。
?
調用函數的例子如下:
#001 //獲取剪貼板的數據。
#002? //蔡軍生 2007/12/10 QQ:9073204 深圳
#003? void TestGetClipBoard(void)
#004? {
#005???????? //判斷剪貼板的數據格式是否可以處理。
#006???????? if (!IsClipboardFormatAvailable(CF_UNICODETEXT))
#007???????? {
#008?????????????? return;
#009???????? }???
#010
#011???????? //打開剪貼板。
#012???????? if (!OpenClipboard(m_hWnd))
#013???????? {
#014?????????????? return;
#015???????? }???
#016
#017???????? //獲取UNICODE的數據。
#018??????? HGLOBAL hMem = GetClipboardData(CF_UNICODETEXT);
#019???????? if (hMem != NULL)
#020???????? {
#021?????????????? //獲取UNICODE的字符串。
#022?????????????? LPTSTR lpStr = (LPTSTR)GlobalLock(hMem);
#023?????????????? if (lpStr != NULL)
#024?????????????? {
#025??????????????????? //顯示輸出。
#026??????????????????? OutputDebugString(lpStr);
#027
#028??????????????????? //釋放鎖內存。
#029??????????????????? GlobalUnlock(hMem);
#030?????????????? }
#031???????? }
#032
#033???????? //關閉剪貼板。
#034???????? CloseClipboard();
#035? }
本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/caimouse/archive/2007/12/10/1928064.aspx
轉載于:https://www.cnblogs.com/lancidie/archive/2011/03/18/1988148.html
總結
以上是生活随笔為你收集整理的Windows API一日一练(86)GetClipboardData函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 审车遇到节假日逾期了
- 下一篇: 为什么要让汽车的传动系统具有降速针具的作