Rumah > pembangunan bahagian belakang > Tutorial C#.Net > C#开发实例-订制屏幕截图工具(九)使用自定义光标和QQ截图时的光标(图)

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

黄舟
Lepaskan: 2017-03-14 13:40:06
asal
2294 orang telah melayarinya

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

打开资源:


切换到文件资源视图


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


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

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

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


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

光标预览:


Form1类中添加私有变量

        #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
Salin selepas log masuk

添加WindowsAPI声明:

        [DllImport("user32.dll")]
        private static extern IntPtr LoadCursorFromFile(string fileName);
Salin selepas log masuk

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

        /// <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;
        }
Salin selepas log masuk

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

        /// <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);
        }
Salin selepas log masuk

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

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

this.Cursor = cursorDefault;
Salin selepas log masuk
Salin selepas log masuk

在ExitCutImage方法中添加代码:

this.Cursor = cursorDefault;
Salin selepas log masuk
Salin selepas log masuk

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

        /// <summary>
        /// 鼠标进入Form1窗体事件处理程序
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Form1_MouseEnter(object sender, EventArgs e)
        {
            this.Cursor = cursorDefault;
        }
Salin selepas log masuk

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

Form1_Init();
Salin selepas log masuk

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

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

Atas ialah kandungan terperinci C#开发实例-订制屏幕截图工具(九)使用自定义光标和QQ截图时的光标(图). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan