我目前还在做Windows程序设计的课程实验,开发一个编辑器。我尝试设置鼠标光标样式为IDC_IBEAM
SetCursor(LoadCursor(IDC_IBEAM));
但是没有什么作用,鼠标会在点击左键的时候消失一下,一移动又回来了,不过还是原来的光标。
在网上查到,需要在SetCursor之前先设置原来的光标不显示,设置之后再显示新的光标。
ShowCursor(FALSE); SetCursor(LoadCursor(IDC_IBEAM)); ShowCursor(TRUE);
结果依然令人失望。幸运的是,我在网上找到了这样一个解答:
如果产生了鼠标消息,系统可能会用窗口的hcursor重新刷新光标,
所以用
SetClassLong(hwnd,GCL_HCURSOR,(long)LoadCursor(NULL,IDC_CROSS));
才能一直保持。
按这个方法尝试后,鼠标成功地变成了插入符,并且不受点击等鼠标操作影响。