easyx库鼠标点击交互操作

为什么鼠标点击一下会触发多次按钮,该如何修改?


while (true) {
        if (MouseHit()) p.Update();
        if (p.isClicked()) {
            outtextxy(0, i*35, "is clicked!");
            i++;
        }
    }

img

while (true) {这个代码执行太快了,加上点延迟
while (true) {
Sleep(100);
...
}
注意 include 下 windows.h

  • 你可以看下这个问题的回答https://ask.csdn.net/questions/7504667
  • 你也可以参考下这篇文章:尝试用easyx窗口实现鼠标的操作
  • 除此之外, 这篇博客: 使用EasyX设计一个简单的有图片背景有音乐的界面中的 右击项目将图片和音乐放在代码存储的同文件夹下,方便使用 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 源文件有点多,其实就是这两个文件

     

  • 以下回答由chatgpt基于相关博客总结生成:

    为了避免鼠标点击按钮时触发多次操作,我建议你在代码中加入一个监听鼠标点击事件的函数。以下是一个示例代码,你可以根据自己的需求进行修改:

    #include<graphics.h>
    #include<conio.h>
    
    void onMouseClick(int btn, int x, int y, int flag)
    {
        if (btn == MOUSE_LEFT && flag == 0)
        {
            // 处理鼠标点击事件的代码
            // 在这里编写你想要执行的操作
            // 例如:如果点击了某个按钮,则执行某个函数
        }
    }
    
    int main(void)
    {
        initgraph(700, 700);
        setcolor(RGB(66, 166, 166));
        cleardevice();
    
        // 注册鼠标点击事件监听函数
        setmouseclick(WM_LBUTTONDOWN, onMouseClick);
    
        _getch();
        closegraph();
    
        return 0;
    }
    

    在这个示例代码中,我们首先定义了一个名为onMouseClick的函数来处理鼠标点击事件。当鼠标左键按下并放开时,onMouseClick函数会被调用。你可以在这个函数中编写你想要执行的操作,比如点击了某个按钮时执行某个函数。

    接着,我们在main函数中调用了setmouseclick函数来注册鼠标点击事件监听函数。这个函数会告诉easyx库,当有鼠标点击事件发生时,要调用onMouseClick函数处理。

    这样,当你点击鼠标按钮时,操作只会触发一次,并且会执行你在onMouseClick函数中编写的操作。你可以根据实际需求在onMouseClick函数里添加更多的代码来处理不同的鼠标点击事件。