C#實現(xiàn)自定義動畫鼠標(biāo)的示例詳解
更新時間:2022年12月20日 08:50:42 作者:芝麻粒兒
這篇文章主要為大家詳細(xì)介紹了如何利用C#實現(xiàn)自定義動畫鼠標(biāo)效果,文中的示例代碼講解詳細(xì),對我們學(xué)習(xí)C#有一定的幫助,感興趣的小伙伴可以跟隨小編一起了解一下
實踐過程
效果
代碼
public partial class Form1 : Form { public Form1() { InitializeComponent(); } [DllImport("user32.dll")] public static extern IntPtr LoadCursorFromFile(string fileName); [DllImport("user32", EntryPoint = "LoadCursorFromFile")] public static extern int IntLoadCursorFromFile(string lpFileName); [DllImport("user32", EntryPoint = "SetSystemCursor")] public static extern void SetSystemCursor(int hcur, int i); const int OCR_NORAAC = 32512;//標(biāo)準(zhǔn) const int OCR_HAND = 32649;//手 const int OCR_NO = 32648;//斜的圓 const int OCR_SIZEALL = 32646;//移動 private void ToolS_From_Click(object sender, EventArgs e) { Cursor myCursor = new Cursor(Cursor.Current.Handle); IntPtr colorCursorHandle = LoadCursorFromFile("0081.ani");//鼠標(biāo)圖標(biāo)路徑 myCursor.GetType().InvokeMember("handle", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.SetField, null, myCursor, new object[] { colorCursorHandle }); this.Cursor = myCursor; } private void ToolS_FromRevert_Click(object sender, EventArgs e) { this.Cursor = Cursors.Default; } private void ToolS_System_Click(object sender, EventArgs e) { //將要修改的標(biāo)鼠圖片存入到系統(tǒng)的WINDOWS\Cursors目錄下 //設(shè)置正常選擇鼠標(biāo) int cur = IntLoadCursorFromFile(@"C:\WINDOWS\Cursors\01.cur"); SetSystemCursor(cur, OCR_NORAAC); //設(shè)置移動 cur = IntLoadCursorFromFile(@"C:\WINDOWS\Cursors\03.cur"); SetSystemCursor(cur, OCR_SIZEALL); //設(shè)置不可用 cur = IntLoadCursorFromFile(@"C:\WINDOWS\Cursors\04.cur"); SetSystemCursor(cur, OCR_NO); //設(shè)置超鏈接 cur = IntLoadCursorFromFile(@"C:\WINDOWS\Cursors\06.cur"); SetSystemCursor(cur, OCR_HAND); } private void ToolS_SystemRevert_Click(object sender, EventArgs e) { //恢復(fù)正常選擇鼠標(biāo) int cur = IntLoadCursorFromFile(@"C:\WINDOWS\Cursors\arrow_m.cur"); SetSystemCursor(cur, OCR_NORAAC); //恢復(fù)移動 cur = IntLoadCursorFromFile(@"C:\WINDOWS\Cursors\move_r.cur"); SetSystemCursor(cur, OCR_SIZEALL); //恢復(fù)不可用 cur = IntLoadCursorFromFile(@"C:\WINDOWS\Cursors\no_r.cur"); SetSystemCursor(cur, OCR_NO); //恢復(fù)超鏈接 cur = IntLoadCursorFromFile(@"C:\WINDOWS\Cursors\hand.cur"); SetSystemCursor(cur, OCR_HAND); } }
partial class Form1 { /// <summary> /// 必需的設(shè)計器變量。 /// </summary> private System.ComponentModel.IContainer components = null; /// <summary> /// 清理所有正在使用的資源。 /// </summary> /// <param name="disposing">如果應(yīng)釋放托管資源,為 true;否則為 false。</param> protected override void Dispose(bool disposing) { if (disposing && (components != null)) { components.Dispose(); } base.Dispose(disposing); } #region Windows 窗體設(shè)計器生成的代碼 /// <summary> /// 設(shè)計器支持所需的方法 - 不要 /// 使用代碼編輯器修改此方法的內(nèi)容。 /// </summary> private void InitializeComponent() { this.menuStrip1 = new System.Windows.Forms.MenuStrip(); this.鼠標(biāo)樣式設(shè)置ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); this.ToolS_From = new System.Windows.Forms.ToolStripMenuItem(); this.ToolS_FromRevert = new System.Windows.Forms.ToolStripMenuItem(); this.ToolS_System = new System.Windows.Forms.ToolStripMenuItem(); this.ToolS_SystemRevert = new System.Windows.Forms.ToolStripMenuItem(); this.menuStrip1.SuspendLayout(); this.SuspendLayout(); // // menuStrip1 // this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { this.鼠標(biāo)樣式設(shè)置ToolStripMenuItem}); this.menuStrip1.Location = new System.Drawing.Point(0, 0); this.menuStrip1.Name = "menuStrip1"; this.menuStrip1.Size = new System.Drawing.Size(292, 24); this.menuStrip1.TabIndex = 2; this.menuStrip1.Text = "menuStrip1"; // // 鼠標(biāo)樣式設(shè)置ToolStripMenuItem // this.鼠標(biāo)樣式設(shè)置ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { this.ToolS_From, this.ToolS_FromRevert, this.ToolS_System, this.ToolS_SystemRevert}); this.鼠標(biāo)樣式設(shè)置ToolStripMenuItem.Name = "鼠標(biāo)樣式設(shè)置ToolStripMenuItem"; this.鼠標(biāo)樣式設(shè)置ToolStripMenuItem.Size = new System.Drawing.Size(89, 20); this.鼠標(biāo)樣式設(shè)置ToolStripMenuItem.Text = "鼠標(biāo)樣式設(shè)置"; // // ToolS_From // this.ToolS_From.Name = "ToolS_From"; this.ToolS_From.Size = new System.Drawing.Size(190, 22); this.ToolS_From.Text = "在窗體中改變鼠標(biāo)樣式"; this.ToolS_From.Click += new System.EventHandler(this.ToolS_From_Click); // // ToolS_FromRevert // this.ToolS_FromRevert.Name = "ToolS_FromRevert"; this.ToolS_FromRevert.Size = new System.Drawing.Size(190, 22); this.ToolS_FromRevert.Text = "在窗體中還原鼠標(biāo)樣式"; this.ToolS_FromRevert.Click += new System.EventHandler(this.ToolS_FromRevert_Click); // // ToolS_System // this.ToolS_System.Name = "ToolS_System"; this.ToolS_System.Size = new System.Drawing.Size(190, 22); this.ToolS_System.Text = "改變系統(tǒng)的鼠標(biāo)樣式"; this.ToolS_System.Click += new System.EventHandler(this.ToolS_System_Click); // // ToolS_SystemRevert // this.ToolS_SystemRevert.Name = "ToolS_SystemRevert"; this.ToolS_SystemRevert.Size = new System.Drawing.Size(190, 22); this.ToolS_SystemRevert.Text = "還原系統(tǒng)的鼠標(biāo)樣式"; this.ToolS_SystemRevert.Click += new System.EventHandler(this.ToolS_SystemRevert_Click); // // Form1 // this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.ClientSize = new System.Drawing.Size(292, 172); this.Controls.Add(this.menuStrip1); this.MainMenuStrip = this.menuStrip1; this.Name = "Form1"; this.Text = "自定義動畫鼠標(biāo)"; this.menuStrip1.ResumeLayout(false); this.menuStrip1.PerformLayout(); this.ResumeLayout(false); this.PerformLayout(); } #endregion private System.Windows.Forms.MenuStrip menuStrip1; private System.Windows.Forms.ToolStripMenuItem 鼠標(biāo)樣式設(shè)置ToolStripMenuItem; private System.Windows.Forms.ToolStripMenuItem ToolS_From; private System.Windows.Forms.ToolStripMenuItem ToolS_FromRevert; private System.Windows.Forms.ToolStripMenuItem ToolS_System; private System.Windows.Forms.ToolStripMenuItem ToolS_SystemRevert; }
到此這篇關(guān)于C#實現(xiàn)自定義動畫鼠標(biāo)的示例詳解的文章就介紹到這了,更多相關(guān)C#自定義動畫鼠標(biāo)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
WinForm下 TextBox只允許輸入數(shù)字的小例子
WinForm下 TextBox只允許輸入數(shù)字的小例子,需要的朋友可以參考一下2013-04-04基于C#的圖表控件庫 ScottPlot編譯visual studio 2022
基于 C# 的 圖表控件庫 ScottPlot,開源免費,可以用于開發(fā)一些上位機軟件,如電壓、電流波形的顯示,開發(fā)【示波器】圖形界面,可以顯示一些圖表、波形,總之功能比較的強大,本文介紹了基于C#的圖表控件庫 ScottPlot編譯visual studio 2022,需要的朋友可以參考下2022-06-06C# Windows API應(yīng)用之基于GetDesktopWindow獲得桌面所有窗口句柄的方法
這篇文章主要介紹了C# Windows API應(yīng)用之基于GetDesktopWindow獲得桌面所有窗口句柄的方法,結(jié)合實例形式分析了GetDesktopWindow函數(shù)用于獲取窗口句柄的具體使用方法與相關(guān)注意事項,需要的朋友可以參考下2016-08-08C#實現(xiàn)導(dǎo)出List數(shù)據(jù)到xml文件的方法【附demo源碼下載】
這篇文章主要介紹了C#實現(xiàn)導(dǎo)出List數(shù)據(jù)到xml文件的方法,涉及C#針對list類及xml文件的相關(guān)操作技巧,并附帶完整demo源碼供讀者下載參考,需要的朋友可以參考下2016-08-08