m0_74411910 2022-12-01 22:01 采纳率: 50%
浏览 176
已结题

关于#c语言#:easyx中ExMessage等获取消息的语句问题

本人在编写一个扫雷的游戏程序,下载了easyx,但始终无法达到示例中直接用ExMessage定义消息变量的功能,也无法引用EX_MOUSE等类别,网上也搜不到到这类问题,想知道是怎么回事。同时,如果自己照示例写出来了一个结构体, 该如何获取鼠标消息?

struct ExMessage
{
    USHORT message;
    union{
    struct
            {
                bool lbutton    :1;        // 鼠标左键是否按下
                bool rbutton    :1;        // 鼠标右键
                short x;                // 鼠标的 x 坐标
                short y;                // 鼠标的 y 坐标
            };
    };
};

int play()
{
    int i,j,n;
    ExMessage m;    
    while(1)
    {
        m = GetMessage()     //此处括号内还未填写参数
        i = m.x/SIZE + 1;
        j = m.y/SIZE + 1;
        switch (m.message) 
        {
            case WM_LBUTTONDOWN:
                if(map[i][j]>=30 && map[i][j]<=39)
                {
                    map[i][j] -= 31;
                    count++;
                    if(map[i][j] == 0)
                    {
                        connect(i,j);
                    }
                }
                break;
            case WM_RBUTTONDOWN:
                if(map[i][j]>=30 && map[i][j]<=39)
                {
                    map[i][j] -= 10;
                }
                else if(map[i][j]>=20 && map[i][j]<=29)
                {
                    map[i][j] += 10;
                }
                break;
            }
        return map[i][j];
    }
}

play()是程序中的一个函数,在上述的ExMessage有问题,同时getmessage()括号内的部分还未填写。 另外的一个问题就是调试的时候总会先在这个函数中出现数组溢出的错误,但实在看不出来哪里有溢出问题(本人水平有限),望大能指正!感谢!

  • 写回答

1条回答 默认 最新

  • 浪客 2022-12-01 23:21
    关注

    struct ExMessage结构在easy.h里已经定义了,可以直接用。
    鼠标事件可以用MOUSEMSG结构、PeekMouseMsg获取鼠标事件。
    getmessage要小写,你那个大写是windows的函数了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 12月10日
  • 已采纳回答 12月2日
  • 创建了问题 12月1日