Windows API一日一練 85 OpenClipboard函數
阿新 • • 發佈:2019-02-02
沒有 ctrl 之間 emc winapi content sdn 重要 edi
多個軟件之間進行數據共享是非常重要的,難以想像編輯軟件沒有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
再分享一下我老師大神的人工智能教程吧。零基礎!通俗易懂!風趣幽默!還帶黃段子!希望你也加入到我們人工智能的隊伍中來!https://blog.csdn.net/jiangjunshow
Windows API一日一練 85 OpenClipboard函數