为什么鼠标点击一下会触发多次按钮,该如何修改?
while (true) {
if (MouseHit()) p.Update();
if (p.isClicked()) {
outtextxy(0, i*35, "is clicked!");
i++;
}
}
while (true) {这个代码执行太快了,加上点延迟
while (true) {
Sleep(100);
...
}
注意 include 下 windows.h
源文件有点多,其实就是这两个文件
为了避免鼠标点击按钮时触发多次操作,我建议你在代码中加入一个监听鼠标点击事件的函数。以下是一个示例代码,你可以根据自己的需求进行修改:
#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
函数里添加更多的代码来处理不同的鼠标点击事件。