改变光标
我在网上搜了一些文章,也按他们说的改了,仍然有问题。
我希望在程序中当满足某些条件时改变鼠标样子。
但是鼠标只有在程序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




