C#開發實例-訂位螢幕截圖工具(九)使用自訂遊標和QQ截圖時的遊標(圖)

黄舟
發布: 2017-03-14 13:40:06
原創
2200 人瀏覽過

在使用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
登入後複製

新增Windows

API宣告:
        [DllImport("user32.dll")]
        private static extern IntPtr LoadCursorFromFile(string fileName);
登入後複製

新增從已有資源取得遊標的方法:

        /// <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;
        }
登入後複製

新增視窗初始化

事件處理程序,新增自訂遊標:
        /// <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條件中新增:

this.Cursor = cursorDefault;
登入後複製
登入後複製

在ExitCutImage方法中新增程式碼:

this.Cursor = cursorDefault;
登入後複製
登入後複製

新增滑鼠進入Form1窗體事件處理程序:

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

Form1的

建構子中新增程式碼:

Form1_Init();
登入後複製
Ok,編譯,截圖看看效果吧!


這裡新增了多個遊標文件,但是只用到了一個,

其它的在以後新增的功能中會使用到。

以上是C#開發實例-訂位螢幕截圖工具(九)使用自訂遊標和QQ截圖時的遊標(圖)的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板