在Allegro5中启用鼠标

时间:2018-11-28 20:18:05

标签: 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;
            }

但是轴定义的空间是不可点击的。这里有人提示我应该使用命令的错字吗?

1 个答案:

答案 0 :(得分:0)

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

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

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

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

al_register_event_source(event_queue , al_get_mouse_event_source());

在典型的GUI中,大多数按钮只有在其单击区域上收到鼠标按下事件以及在同一区域上收到鼠标按下事件时,才被视为“按下”。这样,当您单击其他按钮时,不会使按钮按动,而是将鼠标移到按钮上并释放按钮。您还可以防止按钮事件按下鼠标,将其从单击区域移开并释放。