自定義鼠標樣式的做法

調用外部鼠標樣式,一般情況有兩種,一種是調用鼠標文件cur、ani文件(cur是靜態光標文件,ani是動畫光標文件)。

做法,自定義光標文件嵌入dll和調用的方法。把鼠標樣式cur文件添加入資源文件(這曉得吧,就是打開項目的property,點擊資源,ctrl+v進去),記住在Resources裏面選擇cur文件,點擊屬性,修改生成操作爲嵌入的資源。(這樣做事爲了控件封裝時候一起封裝,如果你是在from中用,那當我沒說)

 

代碼如下:

                    this.Cursor = new Cursor(GetType(), "Resources.hmove.cur");

 

記住GetType()是爲了獲得Resources在哪個項目下,如果報錯,請檢查名字是否正確?是否選定資源爲嵌入的資源?

      另外一種是直接把png、jpg圖片做爲鼠標光標。

public void SetCursor(Bitmap cursor, Point hotPoint)

        {

            int hotX = hotPoint.X;

            int hotY = hotPoint.Y;

            Bitmap myNewCursor = new Bitmap(cursor.Width*2 - hotX, cursor.Height*2 - hotY);

            Graphics g = Graphics.FromImage(myNewCursor);

            g.Clear(Color.FromArgb(0, 0, 0, 0));

            g.DrawImage(cursor, cursor.Width - hotX, cursor.Height - hotY, cursor.Width, cursor.Height);

 

            IntPtr iptr = myNewCursor.GetHicon();

            this.FindForm().Cursor = new Cursor(iptr);

 

            g.Dispose();

            myNewCursor.Dispose();

            cursor.Dispose();

}

 

 

 

調用方法 Bitmap a=(Bitmap)Bitmap.FromFile("myCur.png");  

       SetCursor(a, new Point(0, 0));


第二種可以向第一種轉換,使用ArtCursors鼠標編輯器,不會用也沒關係,只需要導入png,導出cur就成。因爲我驗證了第二種在調用多次的時候,會出現“GDI+一般性錯誤”的報錯提示。所以最好是調用一次儲存Cursor變量是最好的解決辦法。切忌反覆調用~

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章