C#winForm自定义鼠标样式的两种方法_第1页
C#winForm自定义鼠标样式的两种方法_第2页
C#winForm自定义鼠标样式的两种方法_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、以前试过在C#WinForm中自定义鼠标样式,结果显示出来的鼠标变成单色。后来百度了下,原来要用API来做。首先引入两个命名空间usingSystem.Runtime.InteropServices;usingSystem.Reflection;C#winForm自定义鼠标样式方法一导入APIDllImport("user32.dll")ublicstaticexternIntPtrLoadCursorFromFile(stringfileName);DllImport("user32.dll")ublicstaticexternIntPtrSetCur

2、sor(IntPtrcursorHandle);DllImport("user32.dll")ublicstaticexternuintDestroyCursor(IntPtrcursorHandle);接下来使用自己的鼠标样式privatevoidForm1_Load(objectsender,EventArgse)CursormyCursor=newCursor(Cursor.Current.Handle);IntPtrcolorCursorHandle=LoadCursorFromFile("my.cur");/鼠标图标路径myCursor.Get

3、Type().InvokeMember("handle",BindingFlags.Public|BindingFlags.NonPublic|BindingFlags.Instance|BindingFlags.SetField,null,myCursor,newobjectcolorCursorHandle);this.Cursor=myCursor;C#winForm自定义鼠标样式方法之二现在介绍另一种不用API方式的,鼠标样式只需要一张背景透明的图片就行了,png或gif格式的写个方法publicvoidSetCursor(Bitmapcursor,Pointhot

4、Point)inthotX=hotPoint.X;inthotY=hotPoint.Y;BitmapmyNewCursor=newBitmap(cursor.Width*2-hotX,cursor.Height*2-hotY);Graphicsg=Graphics.FromImage(myNewCursor);g.Clear(Color.FromArgb(0,0,0,0);cursor.Width,g.DrawImage(cursor,cursor.Width-hotX,cursor.Height-hotY,cursor.Height);this.Cursor=newCursor(myNewC

5、ursor.GetHicon();g.Dispose();myNewCursor.Dispose();在你想要改变鼠标样式的事件里头使用这个方法就行了privatevoidForm1_Load(objectsender,EventArgse)Bitmapa=(Bitmap)Bitmap.FromFile("myCur.png");SetCursor(a,newPoint(0,0);/this.btnBack.FlatStyle=FlatStyle.Flat;/setthebuttonnoframe/this.btnBack.FlatAppearance.BorderSize

6、=0;C#winForm自定义鼠标样式举例:Test.csusingSystem;usingSystem.Drawing;usingSystem.Windows.Forms;usingSystem.Runtime.InteropServices;usingSystem.Reflection;namespaceColorCursor/<summary>/本例子的作用:Ill在.NET中实现彩色光标,动画光标和自定义光标。/</summary>publicclassForm1:System.Windows.Forms.FormDllImport("user32.d

7、ll")publicstaticexternIntPtrLoadCursorFromFile(stringfileName);DllImport("user32.dll")publicstaticexternIntPtrSetCursor(IntPtrcursorHandle);DllImport("user32.dll")publicstaticexternuintDestroyCursor(IntPtrcursorHandle);STAThreadstaticvoidMain()Application.Run(newForm1();publ

8、icForm1()this.Text="欢迎光临【孟宪会之精彩世界】:http:/dotnet.aspx.cc/"CursormyCursor=newCursor(Cursor.Current.Handle);/dinosau2.ani为windows自带的光标:IntPtrcolorCursorHandle=LoadCursorFromFile("C:WINNTCursorsdinosau2.ani");myCursor.GetType().InvokeMember("handle",BindingFlags.Public|Bind

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论