怎样在对话框里改变光标形状

sioca 2006-10-24 09:11:14
不会在MFC里改变鼠标形状
想在对话框特定坐标区域中改变鼠标形状,当鼠标移动出特定区域,最好再改回来,不知道怎么用,
试过
SetCursor(AfxGetApp()->LoadCursor(IDC_HAND));
可是没有效果,另外也不符合需求
谢谢大虾
...全文
237 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
dysxq 2006-10-25
  • 打赏
  • 举报
回复
注意了,SetCursor要前面要加::,用::SetCursor,就是全局的那个函数,你直接用的话,会调用窗口的成员函数SetCursor,当然就不会改变了,还有,应该重写OnSetCursor这个函数,在里面来改变,否则在MouseMove里做这个动作结果可能会是两种光标变来变去,你的MouseMove把光标改成自己定义的,系统马上又改回去了
oicqhf 2006-10-25
  • 打赏
  • 举报
回复
void CCaptureDlg::OnMouseMove(UINT nFlags, CPoint point)
{
if (!IsMDown)
{
CDialog::OnMouseMove( nFlags,point) ;
return;
}
CRect lpRect(m_PointOld.x,m_PointOld.y,point.x,point.y);

GetCapture();
CDC* dc= GetDC();
Invalidate();
dc->Draw3dRect(lpRect,RGB(255,0,0),RGB(255,0,0));

SetCursor(AfxGetApp()->LoadCursor(IDC_CURSOR));//*******//

ReleaseDC(dc);

CDialog::OnMouseMove(nFlags, point);
}
像搂主说的那样用完全可以呀!这是我的部分代码,可以实现。
sioca 2006-10-24
  • 打赏
  • 举报
回复
我要实时获得鼠标坐标,于是有MOUSEMOVE响应函数,我就在MOUSEMOVE里面写了这个东西,结果鼠标根本就不改变, 也不报错... 郁闷的要死
DentistryDoctor 2006-10-24
  • 打赏
  • 举报
回复
怎么会没有效果呢?也不符合需求?GetCursor选择原来的光标,移除相应的区域再设置为原来的?

19,468

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 图形处理/算法
社区管理员
  • 图形处理/算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧