博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
获取MDI窗体中控件坐标的方法/屏幕局部截图原位写入
阅读量:6427 次
发布时间:2019-06-23

本文共 1448 字,大约阅读时间需要 4 分钟。

一、程序介绍:

在有MDI窗体的工具条和菜单栏,并且窗体在任何大小时,要想准确获得窗体中控件的坐标,可以使用下列代码:

这段代码的大体含义是在原来的窗体上的pbImg(pictureBox)位置进行屏幕截图后写回pbImg,而屏幕任何内容的位置不能变化,让人看不出是截图后重新写入的。

Bitmap CatchBmp = new Bitmap(pbImg.Width, pbImg.Height);
Graphics g = Graphics.FromImage(CatchBmp);
var screenPoint = PointToScreen(pbImg.Location);
//
//x1 = panel1.Width+panel1.Left;
//y1 = menuStrip1.Height+menuStrip1.Location.Y ;
g.CopyFromScreen(new Point(screenPoint.X + panel1.Width + panel1.Left, screenPoint.Y + menuStrip1.Height + menuStrip1.Location.Y), new Point(0, 0), new Size(pbImg.Width, pbImg.Height));

二、程序中用到的典型方法介绍

1、Control.PointToScreen 方法

将指定工作区点的位置计算成屏幕坐标。 

命名空间: System.Windows.Forms
程序集: System.Windows.Forms(在 system.windows.forms.dll 中)

C#语法:

public Point PointToScreen ( Point p)
参数
p:要转换的工作区坐标 Point。

返回值:一个 Point,它表示转换后的 Point、p(以屏幕坐标表示)。

2、Graphics.CopyFromScreen 方法 (Int32, Int32, Int32, Int32, Size)

执行颜色数据(对应于由像素组成的矩形)从屏幕到 Graphics 的绘图图面的位块传输。

命名空间: System.Drawing

程序集: System.Drawing(位于 System.Drawing.dll)

C#语法:

public void CopyFromScreen( int sourceX, int sourceY, int destinationX, int destinationY, Size blockRegionSize)

参数

sourceX
Type: System.Int32
位于源矩形左上角的点的 x 坐标。

sourceY

Type: System.Int32:位于源矩形左上角的点的 y 坐标。

destinationX

Type: System.Int32:位于目标矩形左上角的点的 x 坐标。

destinationY

Type: System.Int32:位于目标矩形左上角的点的 y 坐标。

blockRegionSize

Type: System.Drawing.Size:要传输的区域大小。

异常:

Win32Exception:操作失败。

     本文转自fengyp 51CTO博客,原文链接:http://blog.51cto.com/fengyp/2046947,如需转载请自行联系原作者

你可能感兴趣的文章
网络性能排查
查看>>
js传参时,没有参数传入,默认值的设置
查看>>
单页面应用的痛点
查看>>
第7课 - 变量的高级主题(下)
查看>>
创建MVC3项目出现错误—NuGet Package Manager is missing or out of date.
查看>>
[ios]ios-Demo4脱衣服/刮奖app-专业
查看>>
数据库SQLServer连接字符串的使用方法
查看>>
排序功能的方法
查看>>
[BZOJ 1017][JSOI2008]魔兽地图DotR(树形Dp)
查看>>
python连接hbase
查看>>
ReaderWriterLock
查看>>
centos 7.0 网卡配置及重命名教程
查看>>
vim使用手册
查看>>
ssh (安全外壳协议)
查看>>
冒泡排序
查看>>
ios-runtime
查看>>
eclipse部署时候不拷jar包到web-inf下面的lib目录解决办法
查看>>
CodeForces 143C Help Farmer
查看>>
Windows 各种控件使用心得
查看>>
SQL Server常见问题总结
查看>>