手动编程Borland图形界面上的可点击按钮

Manually Programming a clickable button on Borland Graphic Interface

本文关键字:按钮 编程 Borland 图形界面      更新时间:2023-10-16

我现在正在做一个编辑器,我需要在BGI上做一个可点击的按钮(它必须在上面)。

现在我做了一些类似于使用outtextxy的事情,给出了坐标,然后我使用mousexmousey得到的坐标制作了if,如果它等于outtext的坐标,它就完成了它的工作。

这对我来说仍然不够好,我想创建一个函数,当我使用outtext时,它会同时创建我创建的if条件(手动为每个outtext设置if条件是一项巨大的编码工作)。

有人能教我如何做这个功能吗?

BGI从来没有被设计成窗口/小部件管理器——它是一个低级的基元库。为了做你想做的事,你需要在上面实现一种WM形式。

对于简单地添加按钮,您只需要一个封装按钮位置的按钮类、绘制按钮的代码、确定(x,y)坐标是否位于按钮内的代码、按钮绘制状态(悬停、按下、正常)和单击事件。

然后,在主循环中,您将希望循环浏览所有按钮,以查看鼠标(x,y)是否位于按钮内。如果鼠标事件是单击,则调用按钮的单击事件。

应用程序中的任何其他小部件类型也是如此,例如文本/编辑窗口。这就是所有窗口/小部件管理器的工作方式。

在应用程序中实现这一点的方式完全取决于您自己。我推荐一个简单的std::vector<BGIWidget>(或者你给小部件超类起的任何名字)。然后你所需要做的就是循环浏览你的小部件列表,以处理绘图、鼠标悬停/进入/离开/点击事件等。