![]() |
|
|
![]()
|
|
| metoflex |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 18.4.2010 Репутация: нет Всего: нет |
Я создал переменную peremennay на Edit Controle категории value и типа double...
Как я понимаю, если я введу любое десятичное число в Edit Controle, то оно автоматически передастся в peremennay, что впринципе происходит(смотрел через отладку). Но в созданную переменную типа double значение из этой переменной не копируется впринципе! т.е.
После выполнения данного кусочка (При всём том что через отладку в peremennay лежит единица ( в соответствующее поле Edit Controle ввёл единицу), в переменной k, так и остаётся лежать ноль...) Помогите пожалуйста, разобраться в данной проблеме! Спасибо! P.S. Для своего Edit Control UpdateData(TRUE); прописывал... Это сообщение отредактировал(а) metoflex - 19.8.2010, 01:03 |
|||
|
||||
| Earnest |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Автоматически ничего не бывает, программист должен это понимать. В функции DoDataExchange должно быть предложение, связывающее твою переменную с контролом, в твоем случае - DDX_Text (pDX, [IDC_EDITID], peremennay); Если ты создаешь переменные через визард, он эти строчки и генерирует - вот и весь автоматизм. UpdateData (TRUE) считывает значения переменных из контролов, прописанных в DoDataExchange, UpdateData(FALSE) - наоборот, заполняет контролы значениями из переменных. Но о вызове этой функции ты должен позаботиться сам - по-умолчанию она вызывается только при инициализации диалога (с FALSE) и на onOK (с TRUE). Все остальное - дело твое. А вот k никак не связана с контролом. Чтобы получить значение, приведенный код (k=peremennay) нужно выполнить. -------------------- ... |
|||
|
||||
| metoflex |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 126 Регистрация: 18.4.2010 Репутация: нет Всего: нет |
Я всё понимаю, вот у меня как раз связываются переменные с контролами:
UpdateData(TRUE); у меня в данных контролах прописан и через отладку (Debug), при вводе в определённые контролы значения, они значатся в переменных D,A2,B2,C2-соответственно, но скажем следующая строчка:
после прохождения данногог куска в y остаётся лежать нуль, хотя в переменных D,A2,C,2,B2 значения лежат те которые я ввёл в контролы... В чём у меня ошибка!? Спасибо Огромное! Это сообщение отредактировал(а) metoflex - 19.8.2010, 19:57 |
||||
|
|||||
| Earnest |
|
||||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5962 Регистрация: 17.6.2005 Где: Рязань Репутация: 87 Всего: 183 |
Ты немного невнятно выражаешься. От ввода в контролы значение в переменные попасть не может - только после выполнения DoDataExchange, может ты это и имеешь ввиду, но невнятно.
Это не может быть, потому что не может быть никогда. Разве что сумма этих значений дает 0. Отладчик в зубы и внимательно все проверяй. В отладчике можно выполнить выражение - ну это самое A2+B2+C2+D. Может, y-ков у тебя два... как я понимаю, между double y=0; и присваиванием есть еще какой-то код. В общем, ищи ошибку. -------------------- ... |
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |