在当前的监控程序中,有两个按钮,分别处理时间点的上一个和下一个,想实现当鼠标移动到这两个按钮上时变为手的鼠标指针,Google了一下,发现csdn上titilima兄已经给出正确方法:
处理父窗口的WM_SETCURSOR消息:
BOOL CYourDlg::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message)
{
// TODO: Add your message handler code here and/or call default
if (pWnd == GetDlgItem(IDC_BUTTON))
{
SetCursor(LoadCursor(NULL, IDC_HAND));
return TRUE;
}
return CDialog::OnSetCursor(pWnd, nHitTest, message);
}
如果编译器提示IDC_HAND找不到,你可以在文件头部加上:
#define IDC_HAND MAKEINTRESOURCE(32649)
感谢titilima兄,当然最好能派生一个类出来实现就好了,目前以为仅仅这么两个小按钮,先不去做了,以后有时间完成之。
本文介绍了一种在特定按钮上改变鼠标指针样式的方法。通过处理WM_SETCURSOR消息并使用SetCursor函数加载预定义的手型光标,实现了鼠标悬停在按钮上时显示为手形的效果。


被折叠的 条评论
为什么被折叠?



