C#开发实例-订制屏幕截图工具(九)使用自定义光标和QQ截图时的光标(图)


本文摘自PHP中文网,作者黄舟,侵删。

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

打开资源:


切换到文件资源视图:


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


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

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

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


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

光标预览:


在Form1类中添加私有变量:

1

2

3

4

5

6

#region 自定义光标

System.Windows.Forms.Cursor cursorCross = null;

System.Windows.Forms.Cursor cursorDefault = null;

System.Windows.Forms.Cursor cursorText = null;

System.Windows.Forms.Cursor cursorColor = null;

#endregion

添加WindowsAPI声明:

1

2

[DllImport("user32.dll")]

private static extern IntPtr LoadCursorFromFile(string fileName);

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

/// <summary>

/// 从已有资源中获得光标

/// </summary>

/// <param name="resource"></param>

/// <returns></returns>

public static Cursor getCursorFromResource(byte[] resource)

{

    byte[] b = resource;

    FileStream fileStream = new FileStream("cursorData.dat", FileMode.Create);

    fileStream.Write(b, 0, b.Length);

    fileStream.Close();

    Cursor cur = new Cursor(LoadCursorFromFile("cursorData.dat"));

    return cur;

}

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

1

2

3

4

5

6

7

8

9

10

11

12

13

14

/// <summary>

/// 窗口初始化事件处理程序

/// </summary>

private void Form1_Init()

{

    this.isCuting = false;

    this.beginPoint = new Point(0, 0);

    this.endPoint = new Point(0, 0);

 

    cursorDefault = getCursorFromResource(Properties.Resources.Cursor_Default);

    cursorCross = getCursorFromResource(Properties.Resources.Cursor_Cross);

    cursorText = getCursorFromResource(Properties.Resources.Cursor_Text);

    cursorColor = getCursorFromResource(Properties.Resources.Cursor_Color);

}

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

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

1

this.Cursor = cursorDefault;

在ExitCutImage方法中添加代码:

1

this.Cursor = cursorDefault;

添加鼠标进入Form1窗体事件处理程序:

1

2

3

4

5

6

7

8

9

/// <summary>

/// 鼠标进入Form1窗体事件处理程序

/// </summary>

/// <param name="sender"></param>

/// <param name="e"></param>

private void Form1_MouseEnter(object sender, EventArgs e)

{

    this.Cursor = cursorDefault;

}

Form1的构造函数中添加代码:

1

Form1_Init();

Ok,编译,截图看看效果吧!

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

以上就是C#开发实例-订制屏幕截图工具(九)使用自定义光标和QQ截图时的光标(图)的详细内容!

相关阅读 >>

C#中dataset的用法

C#解析xml文件的代码实例分享

C#中如何取绝对值函数的方法详解

C#的socket实现udp协议通信的示例代码详解

C#thread同步mutex的代码详解

C#中载入界面的经典实例

详细介绍用C#描述数据结构0:导图

C# sleep延时方法

C# 常用函数总集

分享多个C#常用正则表达式的实例

更多相关阅读请进入《C#》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...