c++easyx如何改变鼠标指针

我正在使用easyx做图形化窗口
现在我需要制作一个按钮,我的想法是鼠标移动到按钮上时变成手的形状(就跟正常按按钮一样)

switch (msg.message) {
                case WM_MOUSEMOVE:
                    //todo
                    

                    break;
                default:
                    break;
                }

如何实现

基于Monster 组和GPT的调写:

在WM_MOUSEMOVE消息的处理代码中使用SetCursor函数来设置鼠标的形状。

switch (msg.message) {
    case WM_MOUSEMOVE:
        // 获取鼠标位置
        POINT pt;
        GetCursorPos(&pt);
        // 将鼠标位置转换为相对于窗口客户区的坐标
        ScreenToClient(hwnd, &pt);
        
        // 检查鼠标是否在按钮范围内
        if (PtInRect(&buttonRect, pt)) {
            // 设置鼠标形状为手
            SetCursor(LoadCursor(NULL, IDC_HAND));
        } else {
            // 恢复默认鼠标形状
            SetCursor(LoadCursor(NULL, IDC_ARROW));
        }
        
        break;
    default:
        break;
}
  • 假设buttonRect是按钮的矩形区域,hwnd是窗口的句柄。PtInRect函数用于检查鼠标位置是否在按钮范围内。当鼠标在按钮范围内时,使用SetCursor函数将鼠标形状设置为手型(IDC_HAND),否则恢复为默认的箭头形状(IDC_ARROW)。
  • LoadCursor函数用于加载系统提供的标准鼠标光标形状。你也可以使用自定义的光标资源,如自定义的手型光标,通过调用LoadCursorFromFile函数加载光标文件,然后将其传递给SetCursor函数来设置鼠标形状。