所以我有近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。