gpt4 book ai didi

c++ - 使用 ImageList 进行图像的面向对象设计

转载 作者:行者123 更新时间:2023-11-28 08:24:14 24 4
gpt4 key购买 nike

我正在制作一个表示图像的类,在 Windows 中,您将图像存储在 ImageList 控件中。此类将用于方便地将图像添加到其他控件(如 ListView 或按钮),或者只是在屏幕上绘制。我的问题是:像这样的东西的正确设计是什么?每个 Image 是否应该有它自己的一张图像的 ImageList,或者 Image 类应该有一个巨大的 ImageList 用于它的所有实例,还是什么?我不太了解 Windows 类的内部结构,所以我不知道 ImageList 类有多“重”,但如果它相对便宜,我倾向于“每个实例都有自己的图像列表”。你有什么建议?

最佳答案

一般来说,我会推荐介于两者之间的东西。

每张 图像设置不同的图像列表似乎很愚蠢。它们旨在存储图像集合并提高管理这些集合的效率,而不是为了保存单个图像。

话又说回来,尝试为所有图像使用一个巨大的图像列表也有缺点。即,图像列表中的所有图像必须具有相同的大小。如果您的图像不是这样,则需要将它们放在单独的图像列表中。

但更重要的是,我不太确定您为什么首先要考虑创建一个包含图像列表的图像类。除非您要存储图标/光标或需要担心掩码,否则为什么不封装一个表示图像的位图的句柄呢?无论如何,这与您要传递给图像列表的“添加”方法的内容相同。

关于c++ - 使用 ImageList 进行图像的面向对象设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4617188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com