GDI-ExtSelectClipRgn将指定区域与当前剪辑区域组合在一起
Posted 天子骄龙
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GDI-ExtSelectClipRgn将指定区域与当前剪辑区域组合在一起相关的知识,希望对你有一定的参考价值。
HRGN hrgn1; HRGN hrgn; HRGN hrgn2; HRGN hrgn3; HDC hdc; HBRUSH hbr; void CGdiPlusDlg::OnBnClickedButton10() hdc = ::GetDC(m_hWnd); hrgn1 = CreateRectRgn(10, 10, 200, 200);//创建矩形区域 int n = SelectClipRgn(hdc, hrgn1);//选择剪切区域 hbr = CreateSolidBrush(RGB(0, 0, 255)); //单色的画刷 FillRgn(hdc, hrgn1, hbr); //用画刷填充区域 void CGdiPlusDlg::OnBnClickedButton11() HRGN hrgn = CreateRectRgn(100, 100, 400, 400);//创建矩形区域 int n1 = SelectClipRgn(hdc, hrgn); hbr = CreateSolidBrush(RGB(255, 0, 0)); //单色的画刷 FillRgn(hdc, hrgn, hbr); //用画刷填充区域 void CGdiPlusDlg::OnBnClickedButton12() hrgn2 = CreateRectRgn(50, 50, 300, 300);//创建矩形区域 hrgn3 = CreateRectRgn(10, 10, 500, 500);//创建矩形区域 int n1 = ::ExtSelectClipRgn(hdc, hrgn2, RGN_XOR); //将指定区域与当前剪辑区域组合在一起 /* 参数1:HDC hdc 设备环境句柄 参数2:HRGN hrgn 要选择的区域的句柄。 除非指定了RGN_COPY模式,否则此句柄不得为 NULL 参数3:int 模式。 它必须是以下值之一 RGN_AND:新的剪切区域=当前剪切区域与hrgn重叠部分 RGN_COPY:新的剪切区域=hrgn区域 RGN_DIFF:新的剪切区域=当前剪切区域-hrgn区域 RGN_OR:新的剪切区域=当前剪切区域与hrgn的并集 RGN_XOR:新的剪切区域=(当前剪切区与hrgn并集)-(当前剪切区与hrgn重叠部分) 返回值:该返回值表明了新的剪切区域的复杂度,它可是如下几种形式: NULLREGION:区域为空; SIMPIEREGION:区域是单个矩形 COMPLEXREGION:区域为多个矩形; ERROR:发生错误 注释:矩形的底边和右边并不排除在剪切区域之外 */ hbr = CreateSolidBrush(RGB(255, 255, 0)); //单色的画刷 FillRgn(hdc, hrgn3, hbr); //用画刷填充区域
使用htm2canvas+jsPDF将指定区域导出成PDF
最近因项目需求,需要打印弹窗表单内容,所以在网上找了找发现了许多优质的帖子,本文章代码基本参考该帖内容,写此文章只为巩固加深印象,文末是原贴链接
const pdfDownload = ()=>{
let target = document.getElementsByClassName(\'ant-layout\')[0] //打印区域
target.style.background = \'#FFF\' //打印内容务必保持背景色为白色
html2canvas(target, {
dpi: 172,
useCORS: true
}).then((canvas)=>{
let cW = canvas.width,
cH = canvas.height,
pH = cW / 592.28 * 841.89,
position = 0,
iW = 595.28,
iH = 592.28 / cW * cH,
pData = canvas.toDataURL(\'image/jpeg\', 1.0),
{ jsPDF } = jspdf
pdf = new jsPDF(\'\', \'pt\', \'a4\')
if(cH < pH){
pdf.addImage(pData, \'JPEG\', 0, 0, iW, iH)
}
else{
while(cH > 0){
pdf.addImage(pData, \'JPEG\', 0, position, iW, iH)
cH -=pH
position -= 841.89
if(cH > 0){
pdf.addImage()
}
}
}
pdf.save(\'form.pdf\')
})
}
相关链接
https://segmentfault.com/a/11...
以上是关于GDI-ExtSelectClipRgn将指定区域与当前剪辑区域组合在一起的主要内容,如果未能解决你的问题,请参考以下文章