网上讲解MFC设置鼠标形状的教程特别多,但方法总结一下也就4种:
方法一:OnMouseMove()
中设置鼠标形状
方法二:OnSetCursor()
中设置鼠标形状
方法三:PreCreateWindow
中设置鼠标形状
方法四:SetClassLong()
中设置鼠标形状
笔者试了试,在我们的单文档多视图情况下,第二种和第四种方法在我们的自建视图类并不能够更改鼠标形状。具体原因和讨论放在文章的最后。
MFC单文档多视图下更改鼠标形状的解决方法:
我们采用上面的第一种方法SetCursor
来实现在自建视图中实现鼠标样式的改变:
第一步:在我们自己创建的新的视图类里面添加新的光标句柄
添加如下代码:
HCURSOR hCur = LoadCursor( NULL , IDC_CROSS );
//类的成员变量,因为加载光标要占用系统资源,最好放在消息响应函数外面,防止系统内存溢出 .
第二步:“自建的View” -> “ClassWizard” (Ctrl + W) -> 右侧Messages栏选择”