VC设置鼠标光标的方式比较

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));





你可能感兴趣的:(VC设置鼠标光标的方式比较)