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 中,如果大多数按钮在其单击区域上同时接收到鼠标按钮按下事件,并且在同一区域上接收到鼠标按钮按下事件,则仅将其视为“按下”。这样,当您单击其他内容时,您不会按下按钮,将鼠标移到按钮上并释放它。您还可以防止按钮事件按下鼠标、将其移出单击区域并释放它。
推荐阅读
- python - Pandas:在另一列中创建包含“下一个”更改值的列
- json - 创建一个包含 json 列的表
- c# - Entity Framework Core - 一对多,无需参考源模型
- html - 当我想要不同的进度条时,堆叠的进度条以相同的颜色出现
- php - Post 将文件名保存为数组;jpg 而不是输入名称
- python - rpy2调用lavaan时出错
- angular6 - 如何将 dist 文件夹的内容部署到服务器根目录?
- ios - Swift:PhotoLibrary 删除资产并取得进展
- c# - 如何从 dataView 中删除值?
- python - 上传照片时如何包含位置?