1 使用::SetCursor设置,如下面,但当移动鼠标后,未必会起作用,因为Windows调用其他窗口消息,如WM_MOUSEMOVE,会设置成默认鼠标形状,即箭头形状。
BOOL CWwe2Dlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
CString sClassName;
::GetClassName(pWnd->GetSafeHwnd(),sClassName.GetBuffer(80),80);
if (sClassName=="Button" && m_hButtonCursor
&& GetWindowLong(pWnd->m_hWnd,GWL_ID)==IDC_OK)
{
::SetCursor(m_hButtonCursor);
return TRUE;
}
return CDialog::OnSetCursor(pWnd, nHitTest, message);
}
2 一劳永逸的的在任何地方都可使用的设置,使用::SetClassLong,如:
//将光标改为漏斗
SetClassLong(pDlg->GetSafeHwnd(), GCL_HCURSOR,
(LONG)LoadCursor(NULL, IDC_WAIT));
//恢复光标为箭头
SetClassLong(pDlg->GetSafeHwnd(), GCL_HCURSOR,
(LONG)LoadCursor(NULL, IDC_ARROW));