怎样改变光标符号
比如我想点击一个按钮后,光标变成沙漏形状
我的代码如下:
::SetCursor(AfxGetApp()->LoadCursor(IDC_WAIT));
但是当我点击按钮后,光标没有任何改变。这段代码该
怎么修改。
问题点数:20、回复次数:8Top
1 楼boomshine(boomshine)回复于 2005-09-16 12:35:48 得分 0
::SetCursor(LoadCursor(NULL,"cursor1.cur"));
这个函数也试过,一样的没改变。Top
2 楼weiym(磨刀霍霍向猪羊)回复于 2005-09-16 12:45:19 得分 0
CWaitCursor wc;Top
3 楼windha()回复于 2005-09-16 13:14:37 得分 0
把 LoadCursor 改为 LoadStandardCursor 试试Top
4 楼sdcer(独钓雪)回复于 2005-09-16 13:19:14 得分 20
HCURSOR hHourCursor;
hHourCursor=LoadCursor(NULL,IDC_WAIT);
SetCapture(hWnd);//hWnd是要光标处于等待状态的窗口。
hSaveCursor=SetCursor(hHourCursor);
//上面是使光标处于等待状态的代码,如果要使鼠标状态还原,记得不要忘记使用ReleaseCapture()
Top
5 楼nkwesley(江南丝竹)回复于 2005-09-16 13:23:05 得分 0
::SetCursor(::LoadCursor(NULL, IDC_HAND));
肯定没问题的Top
6 楼redjuly(凤凰木)回复于 2005-09-16 13:36:35 得分 0
设置光标完需要有耗时的操作光标才会位置你设置的状态,
否则应该就恢复默认的了。
void CBbbDlg::OnButton3()
{
// SetCursor(AfxGetApp()->LoadCursor(NULL,IDC_WAIT));
// int n= 10000000000000;
// while( n>0)
// n--;
HANDLE hCursor = ::LoadImage(AfxGetResourceHandle(),MAKEINTRESOURCE(IDR_MAINFRAME),IMAGE_ICON,0, 0, LR_DEFAULTSIZE);
if(NULL == hCursor)
{
LPVOID lpMsgBuf;
::FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |FORMAT_MESSAGE_FROM_SYSTEM |FORMAT_MESSAGE_IGNORE_INSERTS, NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL
);
::MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION );
LocalFree( lpMsgBuf );
}
else
{
int n= 10000000000000;
while( n>0)
n--;
::SetCursor((HCURSOR)hCursor);
}
}
Top
7 楼ussthamcn()回复于 2005-09-16 15:19:28 得分 0
楼上说的对有耗时的操作才可以用等待光标,在软件开发中这个耗时的操作还有一个时间规定,超过这个时间改变鼠标状态.Top
8 楼sdcer(独钓雪)回复于 2005-09-16 15:26:44 得分 0
等待光标是不需要时间的限制的,哪怕是一个click事件函数,哪怕这个按钮什么都没做,也一样可以使光标置于等待状态。这与事件的性质无关。Top




