
VC++ 鼠标光标移动到按钮上时变成IDC_SIZEWE光标!如何实现???
我的操作顺序是:在控件上右键→选择“事件”→添加WM_SetCursor消息→添加并编辑代码!得到程序:BOOLCMyDlg::OnSetCursor(CWnd*pWnd...
我的操作顺序是:
在控件上右键→选择“事件”→添加WM_SetCursor消息→添加并编辑代码!
得到程序:
BOOL CMyDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
::SetCursor(::LoadCursor (NULL,IDC_SIZEWE));
return CDialog::OnSetCursor(pWnd, nHitTest, message);
}
结果没反应!
若把 return CDialog::OnSetCursor(pWnd, nHitTest, message); 变成 return TRUE;则运行程序就是IDC_SIZEWE光标,而不是当鼠标移动到按钮上时才变,而是一直都是。。。
该如何实现当鼠标移动到按钮上时才改变光标啊????麻烦知道的说一下嘛,,,谢谢了! 展开
在控件上右键→选择“事件”→添加WM_SetCursor消息→添加并编辑代码!
得到程序:
BOOL CMyDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
::SetCursor(::LoadCursor (NULL,IDC_SIZEWE));
return CDialog::OnSetCursor(pWnd, nHitTest, message);
}
结果没反应!
若把 return CDialog::OnSetCursor(pWnd, nHitTest, message); 变成 return TRUE;则运行程序就是IDC_SIZEWE光标,而不是当鼠标移动到按钮上时才变,而是一直都是。。。
该如何实现当鼠标移动到按钮上时才改变光标啊????麻烦知道的说一下嘛,,,谢谢了! 展开
展开全部
BOOL CMFCTestDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
CString sClassName;
HCURSOR m_hCursor = LoadCursor(NULL,IDC_CROSS);
//查找类名
::GetClassName(pWnd->GetSafeHwnd(),sClassName.GetBuffer(80),80);
//如果类名为“Button”且m_hCursor的值不为空
if (sClassName=="Button" && m_hCursor){
//修改光标
::SetCursor(m_hCursor);
return TRUE;
}
return CDialog::OnSetCursor(pWnd,nHitTest,message);
}
因为WM_SetCursor是由OnMouseMove(鼠标移动)事件发送的,鼠标移动一次,便发送一次WM_SetCursor消息,所以你的程序才会运行时就会改变光标。
追问
嘿嘿 我弄好了!!!!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询