OnSetCursor 及改变鼠标形状

 

该消息在鼠标发生任何事件时都能响应(单击,双击,移动,且该函数的调用在对于鼠标响应函数之前)。

如果处理了该函数,一定要返回return TRUE,不要让父类再处理

该函数专门由于设置光标的形状,是对WM_SETCURSOR消息的响应.

afx_msg BOOL CWnd::OnSetCursor(CWnd* pWnd,UINT nHitTest,UINT message);

参数一:当前鼠标位于哪个窗口(控件)上,可以通过pWnd->GetDlgCtrID()来判断设置鼠标形状

参数二:表示当前鼠标位于实现该函数的窗口的哪个位置(HTBORDER HTCLIENT等等,参考OnNcHitTest函数)

参数三:表示鼠标消息的值(WM_LBUTTONDOWN  WM——LBUTTONUP诸如此类)

 

使用方法:

 使用ClassWizard为视图或者对话框添加WM_SETCURSOR消息的响应函数OnSetCursor();在函数中,使用SetCursor函数,然后要返回真,屏蔽掉系统的设置函数。

 

用途:一般用于改变鼠标的形状。当改变鼠标的形状后一定要返回TURE。

hCursor=LoadCursor(NULL,IDC_WAIT);

SetCursor(hCursor);

return TRUE;

 

 

IDC_APPSTARTING 标准的箭头和小沙漏

IDC_ARROW 标准的箭头

IDC_CROSS 十字光标

IDC_HELP 标准的箭头和问号

IDC_IBEAM 工字光标

IDC_NO 禁止圈

IDC_SIZEALL 四向箭头指向东、西、南、北

IDC_SIZENESW 双箭头指向东北和西南

IDC_SIZENS 双箭头指向南北

IDC_SIZENWSE 双箭头指向西北和东南

IDC_SIZEWE 双箭头指向东西

IDC_UPARROW 垂直箭头

IDC_WAIT 沙漏

 

什么时候系统会发送设置光标消息:WM_SETCURSOR。

只要鼠标事件发生就会自动发送 WM_SETCURSOR从而触发OnSetCursor

 

 

 

 

 

 

你可能感兴趣的:(windows)