Visual C++ 时尚编程百例008(鼠标形状)

本文介绍了一种根据鼠标在窗口中的位置改变光标样式的方法。通过将窗口划分为9个区域,每个区域对应不同的光标样式,实现了交互式的光标效果。此方法可用于增强用户界面的交互性和美观度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

打开资源,右击添加->选择Cursor->IDC_POINTER
头文件添加
public:
 HCURSOR CUR;
protected:
 void LoadCursorID(UINT Cur);
 UINT CurName;
 void CapPoint(CPoint MousePos);
源文件中添加
void Cvc1001View::LoadCursorID(UINT Cur)
{
 CurName=Cur;
}
void Cvc1001View::CapPoint(CPoint MousePos)
{
 CRect r;
 GetClientRect(&r);
 int Width,Hight;
 Width=MousePos.x/(r.right/3);
 Hight=MousePos.y/(r.bottom/3);
 switch(Width)
 {
 case 0:
   switch(Hight)
   {
   case 0:LoadCursorID(IDC_POINTER);break;
   case 1:LoadCursorID(IDC_NODROP);break;
   case 2:LoadCursorID(IDC_POINTER);break;
   }break;
 case 1:
   switch(Hight)
   {
   case 0:LoadCursorID(IDC_POINTER);break;
   case 1:LoadCursorID(IDC_NODROP);break;
   case 2:LoadCursorID(IDC_POINTER);break;
   }break;
 case 2:
   switch(Hight)
   {
   case 0:LoadCursorID(IDC_POINTER);break;
   case 1:LoadCursorID(IDC_NODROP);break;
   case 2:LoadCursorID(IDC_POINTER);break;
   }break;
 }
 CUR=AfxGetApp()->LoadCursor(CurName);
 Invalidate();
}
void Cvc1001View::OnMouseMove(UINT nFlags, CPoint point)
{
 // TODO: 在此添加消息处理程序代码和/或调用默认值
 CapPoint(point);
 ::SetCursor(CUR);
 Invalidate();//刷新窗口
 CView::OnMouseMove(nFlags, point);
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值