C#软件开发实例.私人订制自己的屏幕截图工具(九)使用自定义光标,QQ截图时的光标

2023-10-26

本实例全部文章目录


在使用QQ的截图功能的时候,是不是觉得它的光标很酷呢?今天就说一下怎么应用自定义光标,在我们的截图工具中使用QQ截图的光标。

打开资源:


切换到文件资源视图:


打开资源文件目录,将光标文件复制到此目录下:


所需光标文件下载:C#软件开发实例.私人订制自己的屏幕截图工具中使用的光标文件

选中Resources目录,刷新,显示出刚刚复制进来的光标文件:

选中光标文件,拖动到资源的文件视图中:


资源资源名称中的单词第一个字母改为大写。

光标预览:


在Form1类中添加私有变量:

[csharp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. #region 自定义光标  
  2. System.Windows.Forms.Cursor cursorCross = null;  
  3. System.Windows.Forms.Cursor cursorDefault = null;  
  4. System.Windows.Forms.Cursor cursorText = null;  
  5. System.Windows.Forms.Cursor cursorColor = null;  
  6. #endregion  

添加WindowsAPI声明:

[csharp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. [DllImport("user32.dll")]  
  2. private static extern IntPtr LoadCursorFromFile(string fileName);  

添加从已有资源中获得光标的方法:

[csharp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. /// <summary>  
  2. /// 从已有资源中获得光标  
  3. /// </summary>  
  4. /// <param name="resource"></param>  
  5. /// <returns></returns>  
  6. public static Cursor getCursorFromResource(byte[] resource)  
  7. {  
  8.     byte[] b = resource;  
  9.     FileStream fileStream = new FileStream("cursorData.dat", FileMode.Create);  
  10.     fileStream.Write(b, 0, b.Length);  
  11.     fileStream.Close();  
  12.     Cursor cur = new Cursor(LoadCursorFromFile("cursorData.dat"));  
  13.     return cur;  
  14. }  

添加窗口初始化事件处理程序,添加自定义光标:

[csharp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. /// <summary>  
  2. /// 窗口初始化事件处理程序  
  3. /// </summary>  
  4. private void Form1_Init()  
  5. {  
  6.     this.isCuting = false;  
  7.     this.beginPoint = new Point(0, 0);  
  8.     this.endPoint = new Point(0, 0);  
  9.   
  10.     cursorDefault = getCursorFromResource(Properties.Resources.Cursor_Default);  
  11.     cursorCross = getCursorFromResource(Properties.Resources.Cursor_Cross);  
  12.     cursorText = getCursorFromResource(Properties.Resources.Cursor_Text);  
  13.     cursorColor = getCursorFromResource(Properties.Resources.Cursor_Color);  
  14. }  

设置默认光标,处理光标状态:

在ShowForm方法的else条件中添加:

[csharp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. this.Cursor = cursorDefault;  
在ExitCutImage方法中添加代码:

[csharp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. this.Cursor = cursorDefault;  
添加鼠标进入Form1窗体事件处理程序:

[csharp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. /// <summary>  
  2. /// 鼠标进入Form1窗体事件处理程序  
  3. /// </summary>  
  4. /// <param name="sender"></param>  
  5. /// <param name="e"></param>  
  6. private void Form1_MouseEnter(object sender, EventArgs e)  
  7. {  
  8.     this.Cursor = cursorDefault;  
  9. }  
Form1的构造函数中添加代码:

[csharp]  view plain copy 在CODE上查看代码片 派生到我的代码片
  1. Form1_Init();  
Ok,编译,截图看看效果吧!

这里添加了多个光标文件,但是只用到了一个,其它的在以后添加的功能中会使用到。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C#软件开发实例.私人订制自己的屏幕截图工具(九)使用自定义光标,QQ截图时的光标 的相关文章

随机推荐

  • 使用IBM SPSS Modeler进行随机森林算法预测

    IBM SPSS产品系列最主要的两款软件为IBM SPSS Statistics和IBM SPSS Modeler IBM SPSS Statistics主要用于统计分析 如均值比较 方差分析 相关分析 回归分析 聚类分析 因子分析 非参数
  • GDB交叉编译与问题解决

    GDB使用 交叉编译 Program received signal SIGILL Illegal instruction Program received signal SIGPIPE Broken pipe 交叉编译 bin bash
  • Linux项目实战——五子棋(单机人人对战版)

    Linux操作系统项目实战 五子棋 GIF 目录 Linux操作系统项目 五子棋 一 问题导引 二 实现要求 三 五子棋原理 1 落子数据信息保存载体 2 落子思路 3 判断 五子连珠 四 项目实现步骤 创建目录及文件 1 在Linux环境
  • 两个sed小技巧

    在写shell时使用sed处理一些输出 遇到两个问题 在网上找到了相应的解决办法 在此处备份一下 sed处理空字符 空字符 它的ASCII码值为0 在sed中如何标识空字符呢 看下面的例子 find print0 sed e s x0 n
  • 树(Tree)——(五)搜索二叉树的节点删除和销毁

    目录 节点删除的三种情况 第一种情况 第二种情况 第三种情况 代码实现 main函数 节点删除的三种情况 节点删除总共分成三种情况 第一种情况 若为叶子节点则直接删除 如左图节点1 3 8或者右图的1 4 8 若为单独一个根叶子要单独处理
  • WaveDrom 使用指南

    原文链接 WaveDrom 使用指南
  • Seventh season fifteenth episode,Joey got a new brain??????

    Scene Monica and Chandler s Monica Chandler Ross and Rachel are sitting around the table Monica I m glad you re here we
  • VMWARE修改CPUID

    在cmd shell下执行wmic cpu get ProcessorId命令 可是查看机器的cpuID 但这个命令显示的只是2组ID 实际CPUID 有4组 通过更改虚拟机配置文件 vmx可是实现任意cpu序列号的指定 而且重启虚拟机后c
  • html怎么在网页中加滚动条,在html中如何加滚动条?滚动条的用法!

    随着经济和科技的发展 互联网的大趋势造就了很大的就业机会 而且在我们日常的生活中大家多多少少会去浏览一些网站和网页吧 那么今天呀 我们就来说说在html中如何加滚动条 和一些有关于滚动条的用法 的经验分享 1 首先我们打开我们的前端的开发工
  • Docker安装Elasticsearch的遇到的那些坑

    1 根据百度到的一篇文章 https segmentfault com a 1190000004376504下载其最新镜像 hangxin1940 docker elasticsearch cn v2 1 0 使用 docker run d
  • 工作笔记-关于安卓和ios兼容遇到的问题

    工作笔记 关于安卓和ios兼容 一 移动端开发 客户端的键盘bug 现象 当用户点击卡面的按钮 弹出密码验证框和客户端键盘 此时点击验证框的按钮 ios的弹窗和键盘消失 然而并无其他事发生 bug定位 安卓功能完好 ios出现 所以采用打印
  • Spring Boot + Vue的网上商城之客服系统实现

    Spring Boot Vue的网上商城之客服系统实现 在网上商城中 客服系统是非常重要的一部分 它能够为用户提供及时的咨询和解答问题的服务 本文将介绍如何使用Spring Boot和Vue js构建一个简单的网上商城客服系统 思路 在本教
  • 编程猫编程平台的使用介绍

    编程猫编程平台的使用介绍 编程猫是由深圳点猫科技有限公司自主研发的国内知名青少年编程教育平台 通过图形化编程 可以创作出游戏 软件 动画 故事等 编程猫编程平台的使用介绍 cnds123的专栏 CSDN博客
  • ChatGPT专业应用:小红书文案生成

    正文共 1263 字 阅读大约需要 5 分钟 内容运营 社媒运营必备技巧 您将在5分钟后获得以下超能力 快速撰写小红书文案 Beezy评级 B级 经过简单的寻找 大部分人能立刻掌握 主要节省时间 推荐人 nanako 编辑者 Linda 此
  • 使用unixODBC并发连接mysql数据库频繁SIGSEGV及SIGABRT崩溃

    使用unixODBC并发连接mysql数据库频繁SIGSEGV及SIGABRT崩溃 2013 05 18 15 18 19 分类 UnixODBC 标签 unixodbc 举报 字号 订阅 下载LOFTER 我的照片书 这几周在测试自己写的
  • 编译XT720 gingerbread

    在android根目录下执行 build envsetup sh 然后执行lunch 选择你要的套餐 然后直接make 编译中有3处错误 1 packages apps CMStats Android mk中 把LOCAL STATIC J
  • [数值计算-3]:误差的种类、误差传播、误差分析

    作者主页 文火冰糖的硅基工坊 https blog csdn net HiWangWenBing 本文网址 https blog csdn net HiWangWenBing article details 119790035 目录 第1章
  • 华为校招机试题- 新员工座位安排系统-2023年

    题目描述 工位由序列F1 F2 Fn组成 Fi值为0 1或2 其中0代表空置 1代表有人 2代表障碍物 1 某一空位的友好度为左右连续老员工数之和 2 为方便新员工学习求助 优先安排友好度高的空位 给出工位序列 求所有空位中友好度的最大值
  • 统计学习方法 例7.1 超详细求解过程

    例7 1 已知一个如图所示的训练数据集 其正例点是 x 1 3 3
  • C#软件开发实例.私人订制自己的屏幕截图工具(九)使用自定义光标,QQ截图时的光标

    本实例全部文章目录 一 功能概览 二 创建项目 注册热键 显示截图主窗口 三 托盘图标及菜单的实现 四 基本截图功能实现 五 针对拖拽时闪烁卡顿现象的优化 六 添加配置管理功能 七 添加放大镜的功能 八 添加键盘操作截图的功能 九 使用自定