在类中定义变量:
int m_Current;
HCURSOR m_Cursor[2];
在OnInitDialog对话框中添加
m_Cursor[0] = LoadCursor(NULL, IDC_ARROW);//加载光标
m_Cursor[1] = LoadCursor(NULL, IDC_HAND);
添加消息
ON_WM_MOUSEMOVE()
ON_WM_SETCURSOR()
实现函数
void CMfcdlg2014Dlg::OnMouseMove(UINT nFlags, CPoint point)
{
// TODO: Add your message handler code here and/or call default
CRect m_Rect;
m_static1.GetWindowRect(&m_Rect);
ScreenToClient(&m_Rect);//CWnd::GetWindowRect得到的是相当屏幕的矩形坐标不是相对客户区的,要转换一下
if(m_Rect.PtInRect(point))
{
m_Current = 1;
}
else
{
m_Current = 0;
}
CDialog::OnMouseMove(nFlags, point);
}
//添加WM_SETCURSOR消息
BOOL CMfcdlg2014Dlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
// TODO: Add your message handler code here and/or call default
if(m_Current>=0 && m_Current<=1)
{
SetCursor(m_Cursor[m_Current]);
return TRUE;
}
return CDialog::OnSetCursor(pWnd, nHitTest, message);
}
注意:ss_notify没有设置