alp*_*der 6 algorithm conceptual-model
在没有真正可用库的平台上,以及除了"坐标(x,y)上的维度(x,y,xx,yy)的显示对象"之外的最小图形,我正在尝试创建一个简单的gui.
有人可以指点我参考,我可以理解在屏幕上显示一组对象所涉及的逻辑原理,并突出显示所选对象,允许用户在对象之间导航并将突出显示移动到每个对象.这似乎应该很简单,但我想了解人们如何看待这一点.
如何使用像obj.highlight()这样的方法创建一个对象,其中obj.highlight会关闭所有其他对象中的突出显示?是否只需通过一个对象数组进行下一个循环,跳过当前对象,关闭突出显示然后将当前对象设置为true?通过在透明中心的所选对象上绘制另一个对象来完成高亮显示.
这是一个单线程系统(但允许少量的异步处理).
我正在寻找更多的概念性想法,但VB中没有使用专有图形调用的代码可能会有用.
嗯,这是一个可以用一百万种方式回答的问题......:)
但只要你能绘制像素(或任何类似的东西),你就可以绘制 GUI。如果您手头有面向对象的语言,我不会选择突出显示和取消突出显示当前对象。我会给出焦点并从中移除焦点,并让对象本身决定是否应该重绘以及应该如何完成。
如果所有对象都放置在某种容器中,您可以自动取消对前一个对象的聚焦。当您按下导航键(如 Tab)或按下鼠标按钮时,该容器可以处理该消息并聚焦下一个对象并取消聚焦最后一个对象。
它需要一些编程,但概念非常简单。当你希望它表现良好、看起来很光滑、有各种动画和过渡时,它会变得更难......但正如我所说,这个概念很简单,你甚至不需要 OO 来做到这一点,尽管它可能会给出你会得到一个更干净的结果。我想如果需要的话,我可以在下雨的下午在 DOS Batch 中编写一个基于 ASCII 的 GUI。