Допустим, у нас есть некоторые Dialog
И в DoDataExchange
функция у нас есть некоторые DDX_Text
звонки, которые работают с некоторыми текстовыми полями.
Давайте посмотрим на прототип:
void AFXAPI DDX_Text( CDataExchange* pDX, int nIDC, CString& value );
Я новичок в диалоговых окнах Windows и этой механике динамического обмена данными, и я не нашел ответа достаточно быстро.
Что-то говорит мне, что nIDC
должно быть уникальным значением, но на самом деле в реальном проекте я вижу, что это не всегда так.
Итак, вопрос в том, когда мы можем иметь nIDC
а когда нет? Должны мы или не должны?
Понятно, что nIDC должен быть уникальным. Вы никогда не хотите быть в ситуации, если у вас есть два или более ресурса с одинаковым значением.
Я сам довольно часто использую DDX_Text вне DoDataExchange для чтения / записи контрольного значения. Пример чтения из контроля в значение:
UINT num;
CDataExchange dx( this, TRUE );
DDX_Text( &dx, IDC_EDIT1, num );
Других решений пока нет …