MFC 鼠标光标资源 及 更换

光标样式

IDC_APPSTARTING 		// 标准的箭头和小沙漏
IDC_ARROW 				// 标准的箭头
IDC_CROSS 				// 十字光标
IDC_HAND 				// Windows 98/Me, Windows 2000/XP: Hand
IDC_HELP 				// 标准的箭头和问号
IDC_IBEAM 				// 工字光标
IDC_ICON 				// Obsolete for applications marked version 4.0 or later.
IDC_NO 					// 禁止圈
IDC_SIZE 				// Obsolete for applications marked version 4.0 or later. Use IDC_SIZEALL.
IDC_SIZEALL 			// 四向箭头指向东、西、南、北
IDC_SIZENESW 			// 双箭头指向东北和西南
IDC_SIZENS 				// 双箭头指向南北
IDC_SIZENWSE 			// 双箭头指向西北和东南
IDC_SIZEWE 				// 双箭头指向东西
IDC_UPARROW 			// 垂直箭头
IDC_WAIT 				// 沙漏,Windows7下会显示为选择的圆圈表示等待

更改光标:链接

理论上利用 SetCursor() 函数 , 应该可以在任何时候,任何地方修改鼠标形状 ,但实际情况却并非如此 , 每次调用OnMouseMove时候, 系统会调用程序默认原来的一个光标来重新绘制鼠标形状 . 所以 , 你如果在其它地方修改光标 , 你会发现这根本不起作用 , 因为每次鼠标一移动 , 它又恢复到原来的形状了 . 这里需要用到另一个API来实现这个功能:

	SetClassLong(this->GetSafeHwnd(),  GCL_HCURSOR, (LONG)LoadCursor(NULL , IDC_CROSS));

例:

	HCURSOR hCurSor1 = (HCURSOR)GetClassLong(this->GetSafeHwnd(), GCL_HCURSOR);
	SetClassLong(this->GetSafeHwnd(), GCL_HCURSOR, (LONG)LoadCursor(NULL, IDC_SIZEALL));
	HCURSOR hCurSor2 = (HCURSOR)GetClassLong(this->GetSafeHwnd(), GCL_HCURSOR);
	SetClassLong(this->GetSafeHwnd(), GCL_HCURSOR, (LONG)LoadCursor(NULL, IDC_ARROW));
	HCURSOR hCurSor3 = (HCURSOR)GetClassLong(this->GetSafeHwnd(), GCL_HCURSOR);

	//  发现 hCurSor1 = hCurSor3 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值