c-在Allegro5中启用鼠标



我开始在C语言的程序中使用Allegro,但我在创建按钮时遇到了困难。我使用的是这种逻辑:

if (event.type == ALLEGRO_EVENT_MOUSE_BUTTON_UP)
{
if ((event.mouse.x >= 442) &&(event.mouse.x <= 471) &&(event.mouse.y >= 202) &&(event.mouse.y <= 238))
{
dig = '1';
entr = 1;
}

但这些由轴定义的空间是不可点击的。这里有人告诉我应该使用的命令拼写错误吗?

我只能猜测出了什么问题,但还没有答案,所以我将提供一些关于可能问题的提示。您的线程标题为启用allegro 5中的鼠标,所以我只能假设您没有得到鼠标输入。

1( 您需要安装鼠标驱动程序,然后才能获得任何鼠标输入:

if (!al_install_mouse()) {Fail();}

2( 鼠标需要在事件队列中注册。

al_register_event_source(event_queue , al_get_mouse_event_source());

在典型的GUI中,只有当大多数按钮在其单击区域上同时接收到鼠标按下事件和在同一区域上接收到鼠标向上事件时,它们才会被视为"按下"。这样,当你点击其他东西时,你就不会按下按钮,将鼠标移到你的按钮上并释放它。你还可以防止按钮事件按下鼠标,将其从点击区域移走并释放。

最新更新