多個軟體之間進行資料共用是非常重要的,難以想像編輯軟體沒有CTRL+C,CTRL+V的功能,是多麼的不方便。很多的操作,就是拷貝的動作,就是為了資料共用。剪貼簿共用是Windows裡比較重要的功能,比如很多採集資料的軟體為了方便導資料到Excel裡面,就可以使用剪貼簿的功能。還有即見即所得的介面導到Word裡面,也可以使用剪貼簿的功能。
函數OpenClipboard聲明如下:
WINUSERAPI
BOOL
WINAPI
OpenClipboard(
__in_opt HWND hWndNewOwner);
hWndNewOwner是前貼板所屬於的視窗。
調用函數的例子如下:
#001 //拷貝資料到剪貼簿。
#002 //蔡軍生 2007/12/09 QQ:9073204 深圳
#003 void TestClipBoard(void)
#004 {
#005 //開啟剪貼簿並清空。
#006 if (OpenClipboard(m_hWnd) &&
#007 EmptyClipboard())
#008 {
#009 //
#010 HGLOBAL hMem;
#011 std::wstring strText(_T("拷貝資料到剪貼簿"));
#012
#013 //分配全域記憶體。
#014 hMem = GlobalAlloc(GMEM_MOVEABLE,
#015 (strText.length() + 1) * sizeof(TCHAR));
#016 if (hMem == NULL)
#017 {
#018 CloseClipboard();
#019 return;
#020 }
#021
#022 //拷貝資料到剪貼簿記憶體。
#023 LPTSTR lpStr = (LPTSTR)GlobalLock(hMem);
#024 memcpy(lpStr, strText.c_str(),
#025 strText.length() * sizeof(TCHAR));
#026 lpStr[strText.length()] = (TCHAR) 0;
#027 GlobalUnlock(hMem);
#028
#029 //設定資料到剪貼簿
#030 SetClipboardData(CF_UNICODETEXT, hMem);
#031
#032 //關閉剪貼簿。
#033 CloseClipboard();
#034 }
#035 }
#036
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/caimouse/archive/2007/12/09/1925509.aspx