Arrays 许多指示不同状态的GUI控件

Arrays 许多指示不同状态的GUI控件,arrays,performance,user-interface,controls,Arrays,Performance,User Interface,Controls,这个问题非常开放,可能这个问题的答案取决于系统,但平均来说,哪种方法是显示不同状态的大型矩阵(比如128个元素)的最佳方法 为每个单元格创建一个控件,并让GUI库处理所有事件和内容(在Windows 128 HWND:s中) 使用低级图形原语绘制整个矩阵 内存/CPU性能是否因选择而异?在我的应用程序中,每个单元的状态数为4,因此每个单元需要2位来表示其状态。每个单元格将由与状态相关的图像表示。确保存在差异。我将试图说明这一点,以及这一点所基于的假设 控件的成本=控件的内存+控件的事件处理程

这个问题非常开放,可能这个问题的答案取决于系统,但平均来说,哪种方法是显示不同状态的大型矩阵(比如128个元素)的最佳方法

  • 为每个单元格创建一个控件,并让GUI库处理所有事件和内容(在Windows 128 HWND:s中)
  • 使用低级图形原语绘制整个矩阵

内存/CPU性能是否因选择而异?在我的应用程序中,每个单元的状态数为4,因此每个单元需要2位来表示其状态。每个单元格将由与状态相关的图像表示。

确保存在差异。我将试图说明这一点,以及这一点所基于的假设

  • 控件的成本=控件的内存+控件的事件处理程序+控件的引用+事件管道中的一个额外控件

  • “严格”控制每单元映射的好处。概念清晰,代码简单,易于思考

  • 紧密映射的成本:将每个控件的成本乘以单元数

  • 我将要提出的替代方案假设紧密映射和松散“一环”映射之间的成本增量很重要

    备选方案:只需添加一个控件,该控件仅在您显示的整个矩阵视图的范围内注册事件,具有一段代码来确定指针位置和对应的单元格,然后根据用户在其中的交互仅更新该单元格

    这样做的好处是,您只需获得一个额外控制的边际成本,但可以获得处理整个矩阵的交互的好处。这种控制的边际效益远远高于单一严格控制的边际效益。在Aldo中,实现成本很小,因为这是一种常见的模式,并且不太困难


    祝你好运

    这不是编程问题,而是用户体验问题。你可能想在ux.stackexchange.com上问这个问题。你认为用户关心我如何实现相同的功能吗?显然我误解了这个问题。我很抱歉。如果你已经有了一个视觉效果的想法(或者可能已经实现了),你应该把它添加到问题中。目前,您的问题表明您正在寻找“显示大型矩阵的最佳方式”,这可能是实现方面的,也可能是用户体验方面的,但您并没有真正说明这一点。另外,“你认为用户关心我如何实现相同的功能吗?”听起来有点不友好。请记住,你是在向完全陌生的人寻求免费帮助,因此你应该尽可能友好,特别是当有人提出建设性建议时。问题是关于CPU/内存的。“内存/CPU性能是否因选择而异?”