C++操作剪貼板具體應(yīng)用方式解析
C++編程語言在實(shí)際編程應(yīng)用中可以使用靈活的方式幫助我們實(shí)現(xiàn)各種功能需求。在這里我們將會充分了解到有關(guān)C++操作剪貼板的具體實(shí)現(xiàn)方法。希望能給大家?guī)硪恍椭?t#
剪貼板內(nèi)置在windows中,并且使用系統(tǒng)的內(nèi)部資源RAM,或虛擬內(nèi)存來臨時保存剪切和復(fù)制的信息,可以存放的信息種類是多種多樣的。剪切或復(fù)制時保存在剪貼板上的信息,只有再剪貼或復(fù)制另外的信息,或停電、或退出windows,或有意地清除時,才可能更新或清除其內(nèi)容,即剪貼或復(fù)制一次,就可以粘貼多次。
下面介紹C++操作剪貼板如何實(shí)現(xiàn),主要是寫入數(shù)據(jù)和獲取數(shù)據(jù),對剪貼板的操作可以看做是一種進(jìn)程間通信的方式
1、在VC++(6.0~9.0)新建一個基于對話框的MFC的項(xiàng)目 ClipboardTest
2、 添加兩個編輯控件(IDC_EDIT_SEND 和 IDC_EDIT_RECV)和兩個按鈕(IDC_BTN_SEND 和 IDC_BTN_RECV)
3、為IDC_BTN_SEND 添加向剪貼板寫入數(shù)據(jù)的代碼
- if (OpenClipboard())//打開剪貼板
- {
- CString str;
- HANDLE hClip;
- char* pBuf;
- EmptyClipboard();//清空剪貼板
- GetDlgItemText(IDC_EDIT_SEND,str);//獲取IDC_EDIT_SEND中的數(shù)據(jù)
- //寫入數(shù)據(jù)
- hClip=GlobalAlloc(GMEM_MOVEABLE,str.GetLength()+1);
- pBuf=(char*)GlobalLock(hClip);
- strcpy(pBuf,str);
- GlobalUnlock(hClip);//解鎖
- SetClipboardData(CF_TEXT,hClip);//設(shè)置格式
- //關(guān)閉剪貼板
- CloseClipboard();
- }
4、為IDC_BTN_RECV 添加讀取剪貼板數(shù)據(jù)的代碼
- if (OpenClipboard())//打開剪貼板
- {
- if (IsClipboardFormatAvailable(CF_TEXT))//判斷格式是否是我們所需要
- {
- HANDLE hClip;
- char* pBuf;
- //讀取數(shù)據(jù)
- hClip=GetClipboardData(CF_TEXT);
- pBuf=(char*)GlobalLock(hClip);
- GlobalUnlock(hClip);
- SetDlgItemText(IDC_EDIT_RECV,pBuf);//講數(shù)據(jù)顯示在IDC_EDIT_RECV中
- CloseClipboard();
- }
- }
以上就是對C++操作剪貼板的相關(guān)介紹。