VC设置鼠标光标方法
原创
©著作权归作者所有:来自51CTO博客作者shanql的原创作品,请联系作者获取转载授权,否则将追究法律责任
一、在MFC中设置鼠标光标
1、载入系统光标
::SetCursor( ::LoadCursor( NULL, IDC_HAND ) );
注意:
LoadCursor第一个参数必须为NULL,否则会载入失败。如果以以下方式调用,则会失败:
::SetCursor( ::LoadCursor( AfxGetApp()->LoadCursor( IDC_HAND ) ) );
或::SetCursor( ::LoadCursor( AfxGetInstanceHandle(), IDC_HAND ) );
2、从资源中载入光标
::SetCursor( ::LoadCursor( AfxGetInstanceHandle(), MAKEINTRESOURCE( IDC_MY_CURSOR ) ) );
或::SetCursor( ::LoadCursor( AfxGetApp()->LoadCursor( MAKEINTRESOURCE( IDC_MY_CURSOR ) ) );
3、从文件中载入光标
HCURSOR hcur = ::LoadCursorFromFile( TEXT("myancur.ani") );
::SetCursor( hcur );
注意:
此处的文件必须是以.ani或者.cur的格式存储的
二、MFC中的一个应用
BOOL CmfcCursorTestDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
// TODO: 在此添加消息处理程序代码和/或调用默认值
if( pWnd == GetDlgItem( IDC_BTN_TEST ) )
{
//一、设置此窗口中特定控件的光标
HCURSOR hcur=::LoadCursorFromFile( TEXT("myancur.ani") ); //加载光标
::SetCursor( hcur );
//::SetCursor( AfxGetApp()->LoadCursor( IDC_CURSOR_TEST ) );
//::SetCursor( ::LoadCursor( NULL, IDC_HAND ) );
//::SetCursor( ::LoadCursor( AfxGetInstanceHandle(), MAKEINTRESOURCE(IDC_CURSOR_TEST) ) );
return true;
}
//二、设置整个窗口的光标
::SetCursor( ::LoadCursor( NULL, IDC_HAND ) );
return true;
return CDialogEx::OnSetCursor(pWnd, nHitTest, message);
}
作者:山丘儿