所以我有近300个变量(现在),并且我已经在Resource.h中按数字顺序排列了它们的ID,所以它是:

#define IDC_BOX1     1
#define IDC_BOX2     2
#define IDC_BOX3     3
#define IDC_BOX4     4


等等。我的问题涉及到我为包含所有这些变量的每个不同对话框执行的DoDataExchange。我真的不想对每个变量执行以下操作:

DDX_CText(pDX, IDC_BOX1, m_nBox1);
DDX_CText(pDX, IDC_BOX2, m_nBox2);
DDX_CText(pDX, IDC_BOX3, m_nBox3);
DDX_CText(pDX, IDC_BOX4, m_nBox4);


因为那太荒谬了。

我该怎么做呢?

for(int i = 0; i < **totalVariables**; i++)
     DDX_CText(pDX, **nameByIdInResourceFile(i)**, **indexOfVariableNameInArray**;


我确定这是可能的,我只是不知道通过ID号提取IDC _...变量名称的函数是什么。有什么想法吗?

最佳答案

@Mark Ransom的答案很好。我完全按照他的建议去做,但是我还有另一件事。在我的应用程序启动期间(由#ifdef DEBUG保护),我有一些代码可以验证我的所有ID都是连续的数字顺序。这样,我可以确定有人(将来可能是我)不会出现并添加数字外的ID。

08-26 23:11