COblist to array

COblist to array

本文关键字:array to COblist      更新时间:2023-10-16

我有一个带有单选按钮等控件的COblist,现在我想从该列表中创建一个CWnd*数组。

显然我不能这样做,Cwnd* controls[controllerList.GetSize()];,因为数组需要一个常数值。但有什么简单的方法可以解决这个问题吗?

简单地说,我指的是任何其他方式,然后用一个小的常数值创建它,填充数组,用大小+常数值创建一个新的,并复制内容等等

使用std::vector<CWnd*>:

#include <vector>
//...
std::vector<Cwnd*> controls(controllerList.GetSize());
//...

现在您有了一个动态的CWnd*数组。

此外,除非您维护的是遗留的MFC代码,否则没有什么理由使用MFC容器而不是STL容器。例如,使用std::list而不是CObList。即使是微软也不使用MFC容器,正如本次交流中所指出的:

MFC集合类仅用于向后兼容性