C++ - 在 DDX_Text 函数中 nIDC 应该是唯一的吗?

C++ - in DDX_Text function should a nIDC be unique?

假设我们有一些 Dialog 并且在 DoDataExchange 函数中我们有一些 DDX_Text 调用可以处理一些文本字段。 让我们看一个原型:

void AFXAPI DDX_Text( CDataExchange* pDX, int nIDC, CString& value );

我是 Windows 对话框和动态数据交换机制的新手,我还没有足够快地找到答案。 有些东西告诉我 nIDC 应该是唯一值,但实际上在实际项目中我发现这并不总是正确的。

所以问题是:我们什么时候可以 nIDC 独一无二,什么时候不能?我们应该还是不应该?

显然 nIDC 必须独一无二。如果您拥有两个或更多具有相同价值的资源,您永远不想遇到这样的情况。

我自己在 DoDataExchange 之外经常使用 DDX_Text 来 read/write 控制值。从控件读取值的示例:

UINT num;
CDataExchange dx( this, TRUE );
DDX_Text( &dx, IDC_EDIT1, num );