在写一此帮助说明类的文档时,截取的图片如果还有鼠标的指针形状,看起来就更直观更友好一些。接下来就讲一下如何在截图中包含鼠标指针形状。
上一篇:C#软件开发实例.私人订制自己的屏幕截图工具(九)使用自定义光标,QQ截图时的光标
添加结构CURSORINFO:
[StructLayout(LayoutKind.Sequential)]
struct CURSORINFO
{
public int cbSize;
public int flags;
public IntPtr hCursor;
public Point ptScreenPos;
}
声明API:
[DllImport("user32.dll")]
static extern bool GetCursorInfo(out CURSORINFO pci);
定义枚举值:
private const int CURSOR_SHOWING = 0x00000001;
添加方法:
/// <summary>
/// 将鼠标指针形状绘制到屏幕截图上
/// </summary>
/// <param name="g"></param>
private void DrawCursorImageToScreenImage(ref Graphics g)
{
if (!this.IsCutCursor) { return; }
CURSORINFO vCurosrInfo;
vCurosrInfo.cbSize = Marshal.SizeOf(typeof(CURSORINFO));
GetCursorInfo(out vCurosrInfo);
if ((vCurosrInfo.flags & CURSOR_SHOWING) != CURSOR_SHOWING) return;
Cursor vCursor = new Cursor(vCurosrInfo.hCursor);
Rectangle vRectangle = new Rectangle(new Point(vCurosrInfo.ptScreenPos.X - vCursor.HotSpot.X, vCurosrInfo.ptScreenPos.Y - vCursor.HotSpot.Y), vCursor.Size);
vCursor.Draw(g, vRectangle);
}
添加方法调用:
OK,再去截图看看吧!
分享到:
相关推荐
此代码对应于博客文章:C#软件开发实例.私人订制自己的屏幕截图工具(四)基本截图功能实现,文章链接:http://blog.csdn.net/testcs_dn/article/details/23346683
此代码对应于博客文章:C#软件开发实例.私人订制自己的屏幕截图工具(六)添加配置管理功能,文章链接:http://blog.csdn.net/testcs_dn/article/details/24466763
在C#软件开发中,创建一个自定义的屏幕截图工具是一项常见的任务,它涉及到图形用户界面(GUI)的交互和图像处理技术。本实例重点讨论的是如何在这样的工具中使用自定义的光标文件,以提供更加个性化的用户体验。...
在C#编程中,开发人员经常需要实现屏幕截图功能,特别是在构建桌面应用或者自动化测试工具时。"C# 带鼠标屏幕截图"这个主题主要关注如何在截取屏幕图像时同时包含鼠标指针的显示。传统的C#图形(Graphics)类虽然...
C#精彩实例教程.pd 很好一本入门教程
在IT领域,尤其是在软件开发和用户界面设计中,了解如何获取和处理鼠标指针的形状是非常重要的。"取当前鼠标指针形状.e.rar" 文件很可能包含了一个程序或代码示例,用于演示如何在不同的编程环境中获取鼠标指针的...
ArcGIS+Engine+C#实例开发教程.pdf
实例中包含了对这些技术的应用,如利用BackgroundWorker异步处理耗时任务,使用PictureBox显示和处理图片,File类进行文件读写,以及Socket进行网络通信等。 六、UI设计与美化 优秀的用户界面能提升用户体验。C# ...
在本文中,我们将深入探讨如何使用C#编程语言实现屏幕截屏功能。C#是一种广泛应用于Windows桌面应用开发的强大语言,Microsoft的.NET框架为开发者提供了丰富的API和类库,使得屏幕截屏这样的任务变得简单易行。让...
本实例“C# 指针时钟实例”提供了一个很好的学习机会,让我们深入了解如何在C#中使用指针来实现动态图像的绘制,特别是创建一个指针时钟。 首先,我们要理解C#中的指针概念。指针变量存储的是其他变量的内存地址。...
基于C#的软件开发实例,可供程序人员参考
C#是一种广泛使用的编程语言,尤其在Windows应用开发中,Winform是一个强大的工具,它提供了丰富的控件和API,使得创建交互式桌面应用程序变得简单易行。 首先,让我们了解什么是区域截屏。区域截屏允许用户自定义...
C# 网络通信开发训练-32个实例 C# 网络通信开发训练 实例01 更改计算机名称...... 670 实例02 通过计算机名获取IP地址...... 672 实例03 通过IP地址获取主机名称...... 673 实例04 修改本机IP地址...... 674...
根据提供的文件信息,我们可以推断出这是一本关于C#编程语言的基础实例教程书籍。由于提供的部分内容非常有限,我们将基于标题、描述以及标签中的信息来展开相关知识点。 ### C# 开发实例大全(基础卷) #### 一、...
这个实例将向我们展示如何在C#应用程序中获取并显示鼠标的当前形状。下面,我们将深入探讨实现这一功能所涉及的关键知识点。 首先,我们需要理解Windows API的概念。API(Application Programming Interface)是...
这个实例能帮助开发者提升解决复杂问题的能力,并理解如何在C#中实现算法。 "Visual C#开发一个媒体播放器"是一个实际的项目开发案例,涵盖了窗体应用程序的设计、多媒体API的使用、事件处理等。通过这个实例,学习...
《C#经典实例详解》 C#是一种由微软公司开发的面向对象的编程语言,它在.NET框架下运行,提供了高效、现代化的编程环境。...在学习过程中,建议结合理论与实践,逐步掌握并熟练运用C#,以应对各种复杂的软件开发挑战。
本资源“C#实例程序.C#实例程序.rar”包含了一百个C#编程的实例,旨在帮助学习者更好地理解和掌握C#编程技术。这些实例涵盖了C#语言的基础到高级特性,对于初学者和进阶开发者来说都是宝贵的参考资料。 首先,让...
第18章 C#高级开发....... 781 18.1 Windows服务开发...... 782 实例487 将局域网聊天程序开发成Windows服务...... 782 18.2 Remoting分布式开发...... 789 实例488 运用Remoting实现文件传送...... 789 实例...
在本压缩包"C#简单爬虫实例.zip"中,包含了一个C#编程语言实现的简单网络爬虫项目,名为"Simple-Web-Crawler-master"。这个项目非常适合初学者或者对C#有一定基础的开发者,想要了解如何利用C#进行网页抓取和数据...