这个问题非常开放,可能这个问题的答案将取决于系统,但平均来说,哪个是显示不同状态的大型矩阵(比如 128 个元素)的最佳方式?
- 为每个单元格创建一个控件,让 GUI 库处理所有事件和内容(在 Windows 128 HWND:s 中)
- 使用较低级别的图形基元绘制整个矩阵
内存/CPU性能是否因选择而异?我的应用程序中每个单元格的状态数为 4,因此它们每个需要 2 位来表示它们的状态。每个单元格将由与状态相关的图像表示。
这个问题非常开放,可能这个问题的答案将取决于系统,但平均来说,哪个是显示不同状态的大型矩阵(比如 128 个元素)的最佳方式?
内存/CPU性能是否因选择而异?我的应用程序中每个单元格的状态数为 4,因此它们每个需要 2 位来表示它们的状态。每个单元格将由与状态相关的图像表示。
当然有区别。我将尝试说明这一点以及它所基于的假设。
控件的成本 = 控件的内存 + 控件的事件处理程序 + 控件的引用 + 事件管道中的一个额外控件
每个单元映射的“严格”控制的好处。概念上干净,简单的代码,最容易思考。
紧密映射的成本:将每个控件的成本乘以单元格的数量。
我将要建议的替代方案假设紧密映射和松散的“单环”映射之间的成本增量很重要。
替代方案:只需添加一个仅在您呈现的整个矩阵视图的范围内为事件注册的控件,有一段代码来确定指针位置和对应的单元格,然后根据用户仅更新该单元格那里的互动。
这样做的好处是您只获得一个额外控制的边际成本,但处理整个矩阵的交互的好处。边际收益或这种控制比单一的严格控制要高得多。Aldo,实现成本很小,因为它是一种常见的模式并且不太难。
祝你好运!