剪下板操作 複製,剪下

2021-09-23 22:39:50 字數 2639 閱讀 2093

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 已經為我們封裝好很多關於剪貼簿的操作,我們可以在自己的應用中很容易實現對...