MFC 複製某個區域到剪下板 bitblt

2021-08-10 02:28:02 字數 2404 閱讀 1312

[cpp]

view plain

copy

cdc* pscreendc = cdc::fromhandle(::getdc(null));"white-space:pre"

>    

//螢幕dc

cdc memdc;"white-space:pre"

>  

// 記憶體dc

cbitmap membmp;  

cbitmap* poldbmp;  

intcx = getsystemmetrics(sm_cxscreen);  

intcy = getsystemmetrics(sm_cyscreen);  

memdc.createcompatibledc(pscreendc);  

membmp.createcompatiblebitmap(pscreendc, cx, cy);  

poldbmp = memdc.selectobject(&membmp);  

memdc.bitblt(0, 0, cx, cy, pscreendc, 0, 0, srccopy);  

//複製到剪下板

openclipboard();  

emptyclipboard();  

setclipboarddata(cf_bitmap, membmp.detach());  

closeclipboard();  

// 顯示到當前介面

cclientdc clientdc(this

);  

crect rcclient;  

getclientrect(rcclient);  

clientdc.stretchblt(0, 0, rcclient.width(), rcclient.height(), &memdc, 0, 0, cx, cy, srccopy);  

memdc.selectobject(poldbmp);  

memdc.deletedc();  

membmp.deleteobject();  

bitblt  

裝置上下文繪圖有很多種方法。例如通過建立位圖畫刷,利用其填充乙個區域來實現影象的繪製。此外,還可以使用cdc類的點陣圖函式來輸出點陣圖到裝置上下文中。  

bitblt 用於從原裝置中複製點陣圖到目標裝置,語法格式如下:  

boolbitblt(int

x,int

y,int

nwidth,

intnheight,cdc*psrcdc,

intxsrc,

intysrc,dworddwrop);  

x:目標矩形區域的左上角x軸座標點。  

y:目標矩形區域的左上角y軸座標點。  

nwidth:在目標裝置中繪製點陣圖的寬度。  

nhight:在目標裝置中繪製點陣圖的高度。  

psrcdc:源裝置上下文物件指標。  

xsrc:源裝置上下文的起點x軸座標,函式從該起點複製點陣圖到目標裝置。  

ysrc:源裝置上下文的起點y軸座標,函式從該起點複製點陣圖到目標裝置。  

dwrop:光柵操作**  

dwrop有如下選擇:  

blackness           使用黑色填充目標區域  

dstinvert              目標矩陣區域顏色取反  

mergecopy            使用與運算組合原裝置矩形區域的顏色和目標裝置的畫刷  

mergepaint           使用或運算將反向的源矩形區域的顏色和目標矩形區域的顏色合併  

notsrccopy          複製源裝置區域的反色到目標裝置中  

notsrcerase        使用或運算組合源裝置區域與目標裝置區域的顏色,然後對結果顏色取反  

patcopy                  複製源裝置當前選中的畫刷到目標裝置  

patinvert               使用異或運算組合目標裝置選中的畫刷和目標裝置區域的顏色  

patpaint                 通過或運算組合目標區域當前選中的畫刷和源裝置區域反轉的顏色  

srcand                   使用與運算組合源裝置和目標裝置區域的顏色  

srccopy                 直接複製源裝置區域到目標裝置中  

srcerase               使用與運算組合目標裝置區域的反色與源裝置區域的顏色  

srcinvert              使用異或運算組合源裝置區域顏色和目標裝置區域顏色  

srcpaint                 使用或運算組合源裝置區域顏色和目標裝置區域顏色  

whiteness             使用白色填充目標區域  

剪下板操作 複製,剪下

copyfile.h pragma once include include include include include include using namespace std class ccopyfilesoper copyfile.cpp include stdafx.h include ...

複製到剪下板 clipboard

function copyhandle content document.addeventlistener copy copy document.execcommand copy 過程 1.document.execcommand copy 觸發複製監聽事件 2.e.clipboarddata.se...

點選複製到剪下板

doctype html html lang en head meta charset utf 8 meta name viewport content maximum scale 1.0,minimum scale 1.0,user scalable 0,initial scale 1.0,wid...