(1)加载资源ID,可以是系统自带的(如ID_CROSS),或者是程序员自己加入的光标ID:
HCURSOR hCursor = ::LoadCursor(NULL,MAKEINTRESOURCE(IDC_CROSS));
SetClassLong(m_hWnd,GCL_HCURSOR,(LONG)hCursor );
//或者指针::SetClassLongPtr(this->GetSafeHwnd(),GCL_HCURSOR,(LONG_PTR) hCursor);
(2)从.cur或.ani文件加载:
HCURSOR hCursor= ::LoadCursorFromFile( _T("hand.cur"));
SetClassLong(m_hWnd,GCL_HCURSOR,(LONG)hCursor );
注意:
SetClassLong()才能保证设置新光标后,以后一直是新光标.
而如果只是SetCursor()只是变化成新光标,马上就还原了,不行.如要用SetCursor(),还需要拦截WM_SETCURSOR消息,然后修改OnSetCursor()函数:
BOOL CMFC_frameView::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
// TO