不要在OnSetCursor()之外设置,否则,那将得到相反的结果:当光标停在鼠标上方时是箭头,在其他地方变成手形状。
在OnSetCursor()中
CRect rcStatic;
CPoint ptCursor;
GetCursorPos(& ptCursor);
GetDlgItem(IDOK)->GetWindowRect(rcStatic);
if(rcStatic.PtInRect(ptCursor))
{
SetCursor(m_hHandCursor);
return TRUE;//注意,要return
}
//...
//所有按钮的处理
return CDialog::OnSetCursor(pWnd, nHitTest, message);
Hand形状的光标是系统预置,但是,如果直接用 LoadCursor(NULL, IDC_HAND); 则编译出错。
那是因为没有把#define IDC_HAND MAKEINTRESOURCE(32649) 给定义进来。
这是为什么呢?因为没有#define WINVER 0x0500。
不过,当你真的那样做了以后,会有一堆NOTE: WINVER has been defined as 0x0500 or greater which enables ...的提示。
哎,M$总是唧唧歪歪。
你觉得怎么好就怎么整吧。
No comments:
Post a Comment