1. 程式人生 > >Windows API一日一練 85 OpenClipboard函數

Windows API一日一練 85 OpenClipboard函數

沒有 ctrl 之間 emc winapi content sdn 重要 edi

多個軟件之間進行數據共享是非常重要的,難以想像編輯軟件沒有CTRL+CCTRL+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函數