[转]C# winForm 自定义鼠标样式的两种方法
本文转自:http://www.cnblogs.com/hzbzxm/archive/2008/09/15/1291104.html
以前试过在WinForm中自定义鼠标样式,结果显示出来的鼠标变成单色。
后来百度了下,原来要用API来做。
首先引入两个命名空间
using System.Reflection;
导入API
public static extern IntPtr LoadCursorFromFile(string fileName);
[DllImport("user32.dll")]
public static extern IntPtr SetCursor(IntPtr cursorHandle);
[DllImport("user32.dll")]
public static extern uint DestroyCursor(IntPtr cursorHandle);
接下来使用自己的鼠标样式
{
Cursor myCursor = new Cursor(Cursor.Current.Handle);
IntPtr colorCursorHandle = LoadCursorFromFile("my.cur");//鼠标图标路径
myCursor.GetType().InvokeMember("handle", BindingFlags.Public |
BindingFlags.NonPublic | BindingFlags.Instance |
BindingFlags.SetField, null, myCursor,
new object[] { colorCursorHandle });
this.Cursor = myCursor;
}
现在介绍另一种不用API方式的,鼠标样式只需要一张背景透明的图片就行了,png或gif格式的
写个方法
{
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);
this.Cursor = new Cursor(myNewCursor.GetHicon());
g.Dispose();
myNewCursor.Dispose();
}
在你想要改变鼠标样式的事件里头使用这个方法就行了
{
Bitmap a=(Bitmap)Bitmap.FromFile("myCur.png");
SetCursor(a, new Point(0, 0));
}
转载于:https://www.cnblogs.com/freeliver54/archive/2008/11/22/1338921.html
[转]C# winForm 自定义鼠标样式的两种方法相关推荐
- 模拟键盘鼠标事件有两种方法
实现一个鼠标或者键盘模拟器,可以完成很多功能,比如做一个简单的游戏外挂^_^.通常,模拟键盘鼠标事件有两种方法: 1.keybd_event, mouse_event 2.SendMessage, P ...
- 改变鼠标指针形状两种方法及实例
改变鼠标指针形状的方法有两种:一种:用css样式表来改变鼠标指针形状.另一种是:利用第三方控件的方法,而我自己最常用的是第一种:用css样式表来改变鼠标指针形状 我们先来看第一种:用css样式表来改变 ...
- Javascript第五章改变CSS样式节点两种方法,制作导航背景切换效果第十课
第一种方法: 鼠标移出,移入来改变导航的样式 第二种方法: 如果改变的效果较多的话 代码出现冗余 可以有className 代码如下: 效果:
- Ajax设置自定义请求头的两种方法
用自定义请求头token为例 方法一 $.ajax({type: "post",url:"http://127.0.0.1:4564/bsky-app/template/ ...
- .ajax 自定义headers,Ajax设置自定义请求头的两种方法
示例用自定义请求头token为例 方法一 $.ajax({ type: "post", url:"http://127.0.0.1:4564/bsky-app/templ ...
- swiper 定义放多少张图片,小程序swiper轮播图,自定义样式,两种方法:原生方法和bindchange方法;将点点改为数字(当前第几张 /总共几张);点击点点跳转当前图片...
一.点点部分 1.1.通过原生方法 (1)wxml文件 (2)wxss /* 轮播图部分 */ .swiperBar { width: 690rpx; height: 337rpx; margin: ...
- C# winform Excel导入保存数据两种方法
方法一::微软自带excel 操作类 项目运行:设置 Any CPU 引用:System.Data.OleDb 点击事件导入按钮: private void buttonX25_Click(objec ...
- Arcgis for javascript不同的状态下自定义鼠标样式
俗话说:爱美之心,人皆有之.是的,没错,即使我只是一个做地图的,我也希望自己的地图看起来好看一点.在本文,给大家讲讲在Arcgis for javascript下如何自定义鼠标样式. 首先,说几个状态 ...
- [C#]自定义鼠标样式
工作中经常需要自定义鼠标样式来更丰富更形象地交互操作,系统自带的样式单一,难免会有些审美疲劳.取而代之,用一些比较形象的图标来定义鼠标样式,用户体验上就更加形象了. 自定义鼠标样式 /// <s ...
最新文章
- 模块架构不是软件成功的“决定因素”
- git安装和使用案例
- 计算机公共课考试试题,2019-度公共课计算机应用基础考试试题附答案.doc
- 始终在新标签页中打开文件
- mysql中engine=innodb和engine=myisam的区别详解
- 微服务实战(二):使用API Gateway
- haproxy代理设置及配置文件详解
- android activity alias,动态更换桌标 Activity-alias
- opencv入门课程:彩色图像灰度化和二值化(采用skimage库和opencv库两种方法)
- python获取mysql中的数据供js调用_详解js文件通过python访问数据库方法
- 灯泡亮度控制单片机_海淀区投影机灯泡
- java docx 内存溢出_第2章 Java内存区域与内存溢出异常
- Spring Boot的RestTemplate 之exchange方法
- CocosCreator简单小鸟穿越隧道小游戏
- c++ 14 新特性
- Codeforces Round #799 (Div. 4) (AK代码)
- 遥感大辞典_学遥感必读的十本书
- websocket传输数据大小限制_WebSocket传输超过126字节数据的方法
- 如何制作WindowsPE启动盘(极简)
- 车辆违章查询接口,获取支持城市参数接口示例
热门文章
- linux命令修改管理员时间,Linux管理员必须知道的sudo命令
- 【译】Understanding Batch Normalization with Examples in Numpy and Tensorflow with Interactive Code
- 基于mcat开发智能合约应用(二)调用合约
- JZOJ 5898. 【NOIP2018模拟10.6】距离统计
- JZOJ 5473. 【NOIP2017提高组正式赛】小凯的疑惑
- 数学之美 系列十六 (下)- 不要把所有的鸡蛋放在一个篮子里 最大熵模型
- 数据挖掘实验报告-关联规则算法实验
- 幻灯片中如何让日期和页码自动更新
- [codevs 2926] 黑白瓷砖(2002年安徽省队选拔赛)
- Codeforces 1276C/1277F/1259F Beautiful Rectangle (构造)