首页 > 解决方案 > 在 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;
            }

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

标签: callegro5

解决方案


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

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

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

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

al_register_event_source(event_queue , al_get_mouse_event_source());

在典型的 GUI 中,如果大多数按钮在其单击区域上同时接收到鼠标按钮按下事件,并且在同一区域上接收到鼠标按钮按下事件,则仅将其视为“按下”。这样,当您单击其他内容时,您不会按下按钮,将鼠标移到按钮上并释放它。您还可以防止按钮事件按下鼠标、将其移出单击区域并释放它。


推荐阅读