copyfile.h:
#pragma once
#include #include #include #include #include #include using namespace std;
class ccopyfilesoper
;
copyfile.cpp
#include "stdafx.h"
#include #include "copyfiles.h"
ccopyfilesoper::ccopyfilesoper()
ccopyfilesoper::~ccopyfilesoper()
bool ccopyfilesoper::copytoclipboard(std::listfilelist, dword dropeffect)
;// uint ugbllen = 0;//總長度
uint udropfileslen = 0;
hglobal hgblfiles;//
hglobal hgbleffect;
char * pszdata = null;
char * szfilelist = null;
dword * dwdropeffect = null;
///自定義剪下板,用來設定標識(複製還是剪下)/
udropeffect = registerclipboardformat(l"preferred dropeffect"); //引數隨便填
hgbleffect = globalalloc(gmem_zeroinit | gmem_moveable | gmem_ddeshare, sizeof(dword));
dwdropeffect = (dword*)globallock(hgbleffect);
//設定自定義剪下板的內容為複製或者剪下標識
*dwdropeffect = dropeffect;
globalunlock(hgbleffect);
///檔案剪下板,用來存放檔案列表/
udropfileslen = sizeof(dropfiles);
//dropfiles結構的大小
dropfiles.pfiles = udropfileslen;
dropfiles.pt.x = 0;
dropfiles.pt.y = 0;
dropfiles.fnc = false;
//true: unicode, false: ascii
dropfiles.fwide = true;
//ubuflen * 2表示的是寬字元大小, 加8表示檔案末尾需要2個空指標結尾,每個指標佔4個位元組大小
//ugbllen = udropfileslen + (ubuflen+1) * sizeof(tchar) + 8;
ugbllen = udropfileslen + ubuflen + 8;
hgblfiles = globalalloc(gmem_zeroinit | gmem_moveable | gmem_ddeshare, ugbllen);
pszdata = (char *)globallock(hgblfiles);
//把dropfiles結構大小的內容放到szdata剪下板空間的最開始
memmove(pszdata, (lpvoid)(&dropfiles), udropfileslen);
//szfilelist指向需要放入檔案的那個空間,前面存放了dropfiles結構大小的空間
szfilelist = pszdata + udropfileslen;
copyfilelistintodropfiles(szfilelist, mapfile);
globalunlock(hgblfiles);
if (::openclipboard(null))
return bres;
}void ccopyfilesoper::opencopyclipboard()
; tchar lpbuffer[max_path] = ;
//查詢所有的檔案列表,並把路徑顯示到文字框中
for (uint count = 0; count < cfiles; count++)
}closeclipboard();
}if (cfiles == 0)
}int ccopyfilesoper::calfilelistlen(std::listfilelist, std::map&mapfile)
ilen = ilen + ifilelen;
mapfile.insert(make_pair(wstrfile, ifilelen));
} return ilen;
}void ccopyfilesoper::copyfilelistintodropfiles(char* pdata, std::map&mapfile)
}
main.h
#include "stdafx.h"
#include "copyfiles.h"
int main()
C 剪下板操作
複製資料至剪下板 bool copytoclipboard const char pszdata,const int ndatalen return false 從剪下板中取得資料 bool gettextfromclipboard closeclipboard return true return...
VC 剪下板操作
文章摘要 1 文字內容的操作 2 wmf資料的操作 3 點陣圖的操作 4 設定使用自定義格式 5 感知剪貼簿內容的改變 6 自動將資料貼上到另一應用程式視窗 一 如何將文字內容複製到剪貼簿 cstring source 文字內容儲存在source變數中 if openclipboard 下面的 顯示...
QT操作剪下板
剪下板應該都比較熟悉,平時使用到的複製貼上功能其實就是在操作剪下板。可以把剪下板簡單的理解成乙個資料儲存池,外面的資料可以存進去,裡面資料也可以取出來。剪貼簿是由作業系統維護的,所以這提供了跨應用程式的資料互動的一種方式。qt 已經為我們封裝好很多關於剪貼簿的操作,我們可以在自己的應用中很容易實現對...