CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

改变光标

楼主angelcool(快乐需要创造)2005-05-09 15:36:24 在 VC/MFC / 基础类 提问

我在网上搜了一些文章,也按他们说的改了,仍然有问题。  
  我希望在程序中当满足某些条件时改变鼠标样子。  
  但是鼠标只有在程序A的运行窗口区域内时才改变。  
   
        SetCursorPos(nKeyX,   nKeyY);  
        m_hOldCursor   =   SetCursor(m_hCursor);  
   
  SetCursorPos发生了,但是光标没有改变。 问题点数:20、回复次数:12Top

1 楼angelcool(快乐需要创造)回复于 2005-05-10 08:51:24 得分 0

这个应该有人做过吧!Top

2 楼liuduofu(天上不下雨,地上也不干!)回复于 2005-05-10 08:58:36 得分 0

找一个具体的例子看看不就可以了  
  Top

3 楼liuduofu(天上不下雨,地上也不干!)回复于 2005-05-10 09:04:35 得分 10

//     在得到消息的时候,设置鼠标指针为"手"形指针  
  SetCursor(AfxGetApp()->LoadCursor(   IDC_HAND));    
  Top

4 楼angelcool(快乐需要创造)回复于 2005-05-10 09:21:47 得分 0

to   liuduofu(天上不下雨,地上也不干!)  
  我能够让光标改变,但它只在我的程序运行界面上改变,换到其他的窗口就又变成系统的了。  
  我希望在我没有恢复光标的原始状态时,它都是我自定义的形状。Top

5 楼angelcool(快乐需要创造)回复于 2005-05-10 11:16:13 得分 0

我认为SetCursor应该是对整个系统有效的,但是我的运行结果是它只对改变光标的程序有效,对当前运行的其他程序无效。  
   
  难道SetCursor不是对整个系统有效吗???Top

6 楼fisker0303(天塌了,地陷了,小花狗不见了.)回复于 2005-05-10 11:40:56 得分 10

当然是只对你的程序有效啦。Top

7 楼fisker0303(天塌了,地陷了,小花狗不见了.)回复于 2005-05-10 11:41:55 得分 0

如果想对整个系统有效,我想可以这样:  
  找到系统默认的光标文件,然后替换掉它。Top

8 楼angelcool(快乐需要创造)回复于 2005-05-10 11:46:54 得分 0

to   fisker0303(Thinking   In   Love)  
  找到系统默认的光标文件,然后替换掉它。  
   
  -------光标文件????????  
  能多说一些吗?Top

9 楼angelcool(快乐需要创造)回复于 2005-05-10 14:47:05 得分 0

我用SetSystemCursor(CopyCursor(m_hCursor),   OCR_NORMAL);  
   
  编译出错:  
  error   C2065:   'OCR_NORMAL'   :   undeclared   identifier  
  ???Top

10 楼angelcool(快乐需要创造)回复于 2005-05-10 15:30:38 得分 0

在类的构造函数中取得自定义光标的HCURSOR和系统当前的光标。  
        m_hCursor   =   AfxGetApp()->LoadIcon(IDI_AS_CURSOR);  
        m_hSysCursor   =   CopyCursor(   LoadCursor(NULL,IDC_ARROW)   );  
  设定为自定义的光标  
        SetSystemCursor(CopyCursor(m_hCursor),   32512);  
  再恢复为系统的光标  
  SetSystemCursor(m_hSysCursor,   32512);  
   
  可是不行,设定了光标后恢复不成功。  
  ?????Top

11 楼hello1996()回复于 2005-05-10 17:54:32 得分 0

dingTop

12 楼angelcool(快乐需要创造)回复于 2005-05-10 18:27:32 得分 0

m_hSysCursor   =   CopyCursor(   LoadCursor(NULL,IDC_ARROW)   );  
  要放在准确的位置,之所以我总是不能正确恢复系统光标,是因为我在这里获取的系统光标就不对。  
  嘿嘿,白浪费这么多的时间。Top

相关问题

  • 如何改变光标哟??
  • 改变光标的问题~~~~
  • 在线等待~如何改变光标
  • 怎么改变鼠标光标?
  • 怎样改变光标符号
  • 动态改变光标型状.
  • 请问改变光标后为何会自动返回默认光标?
  • 如何将光标在几个编辑框中改变焦点?
  • 关于改变鼠标光标的问题
  • 如何改变 rich text box 中的光标颜色?

关键词

  • 系统
  • 鼠标
  • 文件
  • idc
  • 光标
  • copycursor
  • hsyscursor
  • hcursor
  • 改变
  • setcursor

得分解答快速导航

  • 帖主:angelcool
  • liuduofu
  • fisker0303

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo