zorrack
Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору Interceptr 1. Пожалуйста, поподробнее опиши следующие моменты: а) Какая среда программирования? б) Если Visual C++ - то используется ли MFC 2. Если используешь Visual C++ - юзай Class Wizard (Ctrl+W по умолчанию) на диалоге, в котором нужно провести соответствие. В Class Wizard сможешь привязать новые переменные к контролам. NOTE: автоматически ничего присваиваться/переприсваиваться не будет. Для того, чтобы в каком то методе получить доступ к самым последним данным, введенным пользователем необходимо использовать UpdateDate(...) функцию. Для записи переменных в контролы: UpdateData(FALSE); Для записи значений из контролов в переменные: UpdateData(TRUE) или просто UpdateData() 3. Если не пользуешь MFC - тогда немного гемморойно: 3.1. Описываешь переменные, в которые будут писаться значения из контролов 3.2. Пишешь функции: Код: //interface void UpdateData(BOOL bSave = TRUE); //implementation char* GetControlValue(int nControlID) { char* pResult = NULL; HWND hWnd = ::GetDlgItem(hMainWnd /*dialog wnd handle*/, nControlID); int iLen = ::GetWindowTextLength(hWnd); if (iLen > 0) { pResult = (char*)malloc(iLen + 1); ::GetWindowText(hWnd, pResult, iLen); } return pResult; } void UpdateData(BOOL bSave) { if (!bSave) { //для каждой переменной - для примера IDC_edUserName char* pRes = GetControlValue(IDC_edUserName); if (pRes) { // скопировать результат pRes в переменную нужного типа с проверкой введенных данных, буфера и т.д. } } else { //для каждой переменной провести ::SetWindowText, предварительно сформировав буфер и т.д. } } | В общем - ничего сложного нету, но много писанины |