C语言 利用ACLLib来鼠标画图
目录
移动鼠标时,event=5
按下鼠标时,event=0
松开鼠标按键时,event=2
代码
#include <stdio.h>
#include "acllib.h"
void mouseListener(int x,int y,int button,int event){
//event的变化是不管是按下鼠标还是没有按下,只要移动了就是event=5
//当按下鼠标,event=0
//手指上抬,松开鼠标,event=2
static int ox=0;
static int oy=0;
static int flag=0;//如果不加static这样的话会画不出来
printf("x=%d,y=%d,button=%d,event=%d\n",x,y,button,event);
if(event==0){
ox=x;
oy=y;//重新赋值坐标给ox、oy是为了在下一次在别的位置画图不会突然一条线连过去,重新开始在新的位置画图
flag=1;
}else if(event==2){//当鼠标抬起,不会执行画图代码
flag=0;
}
if(flag){//当按下鼠标时,flag=1,抬起flag=0
beginPaint();
line(ox,oy,x,y);
endPaint();
ox=x;
oy=y;
}
}
int Setup()
{
initWindow("Test",DEFAULT,DEFAULT,800,800);
initConsole();
printf("Hello\n");
//回调函数获取事件来知道鼠标移动位置以及鼠标状态
registerMouseEvent(mouseListener); //注册了回调函数
return 0;
}
运行并画图:
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)