C#区域截图——调用API截图

  • 时间:
  • 浏览:1
  • 来源:彩神大发APP_神彩大发APP官方

前言:截图对于另4个 C++开发者来说无非是小菜一碟,时要朋友使用C#的 Graphics.CopyFromScreen 土最好的办法屏幕操作,作为一名整天想着用 C++ 开发游戏的初级 C#.NET 的进程运行员的我,本来买车人研究区域截图,失败 n 多次,最后在半梦半醒中弄出来的简单的Demo,简单的分享一下而已。没得的班门弄斧,人太好不堪,另外我的 C++ 水平也是位于入门水准,因为该博客有哪此问提报告 ,请各位朋友留言指正,谢谢关照!

原理步骤:

1、通过窗体 handle 创建设备上下文环境

2、根据上下文环境句柄建立对应的与设备兼容的内存设备上下文环境(理解成一块画板,内存上的)

3、通过窗体句柄得到长宽,通过CreateCompatibleBitmap得到窗体对应的设备环境句柄对应的位图区域(理解成自然界的另4个 美丽的景色)

4、通过 SelectObject 指向性,把 3 中的位图区域句柄对应到 2 中的内存设备上下文中(理解成,我时要画这大自然的美丽景色,我时要有相应的画布,这里本来在画板上固定画布)

5、绘图,包括各种 API 绘图或获取图形

6、此处有点儿要,因为朋友时要要过去框架的整体图形,朋友要的是局部的,于是,朋友可不时要通过 1 、2 、3 、4 的步骤,再建设一块画布(第三步有其他区别,本来长宽)

7、通过 BitBlt 土最好的办法把以后画好的画的另4个 区域克隆qq到朋友新建的画板上, BitBlt 的功能是“对指定的源设备环境区域中的像素进行位块(bit_block)转换,以传送到目标设备环境”

8、假使 就简单了,Bitmap bmp = Bitmap.FromHbitmap(myBitmap);把朋友克隆qq出来的第二块画板上的画生成位图图像

9、再进行哪此操作就随你了

10、最后,最后,最最重要的是……无须忘了使用 DeleteDC 函数清除第 1 、 2 中建的上下文环境,因为这是 API,没得Java的自动清理机制

猜你喜欢

在.NetCore中使用Myrmec检测文件真实格式

github地址:https://github.com/rocketRobin/myrmecnuget地址:https://www.nuget.org/packages/Myr

2020-03-22

目前哪些手机可以无线充电怎么无线充电

三星S10Plus华为Mate20Pro无线充电,是近一两年来在旗舰手机上经常出显的俩个 多功能,当然,目前来看,搭载无线充电功能的手机还不过多,我来推荐几款。华为Mate2

2020-03-22

阿里云CDN直播架构与双11晚会直播实战

电商直播的最佳实践猫晚流量再创记录,阿里云直播方案护航优酷21150万用户体验【云栖精选11月刊】揭秘双11肩头的互联网技术超级工程阿里云跨界商务媒体合作芒果TV看明星也用云计

2020-03-21

国美 京东 天猫 苏宁在哪个买电器便宜靠谱?

下载百度知道APP,抢鲜体验至于价格展开完整性使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。不得劲推荐为你推荐:基本差太满换一换你对这种回答的评价是

2020-03-21

2019年即将进入尾声,你的2020年最想做什么事?

3、找到俩个 多多 可不还要长期发展的行业并现在结速投资。不怎么推荐展开全部8、希望我的第7条可不还要实现。5、希望我中间的1234条都能实现。使用百度知道APP,立即抢鲜

2020-03-21