BOOL cwnd::updatedata( BOOL bsaveandvalidate = TRUE ) 


Мы поможем в написании ваших работ!



ЗНАЕТЕ ЛИ ВЫ?

BOOL cwnd::updatedata( BOOL bsaveandvalidate = TRUE )

Поиск

Тот же самый механизм занимается передачей введенных значений от элементов управления в переменные-члены, когда пользователь нажимает кнопку OK или при любом другом вызове функции UpdateData со значением аргумента TRUE. При этом DDV-механизм проверяет правильность ввода для всех элементов управления, для которых вы указали правила проверки. Функция

BOOL CWnd::UpdateData( BOOL bSaveAndValidate = TRUE )

действует в обоих направлениях в зависимости от значения параметра bSaveAndValidate и возвращает ненулевое значение в случае успешной операции. Для осуществления обмена UpdateData вызывает другой метод:

virtual void CWnd::DoDataExchange( CDataExchange* pDX )

который, собственно, и выполняет этот обмен и проверку корректности. Данную функцию необходимо переопределять для каждого класса диалога, принимающего данные от пользователя. Аргумент CDataExchange представляет "контекст" обмена и имеет флаг направления. (Как вы видите, обе приведенные здесь функции описаны уже в классе CWnd – ввиду этого рассматриваемый механизм взаимодействия с пользователем может использоваться в любом окне. Тем не менее, как правило, его применение ограничивается лишь окнами диалога).

 

Общая схема обмена данными:

 

Инициализация переменных                            Инициализация элементов упр.

в конструкторе диалога ________________      ч/з UpdateData        _____________

------------------------------------à| Переменные    | -------------------------------à| Окно диалога |

                                          | класса            |                                         |                  |

<------------------------------------ |  диалога            | ß------------------------------- |        |

Получение значений                                                     Получение значений после          

переменных                                                        вызова UpdateData

 

 

Переопределяя DoDataExchange, вы (или ClassWizard) вписываете по одному вызову специальной DDX-функции на каждую переменную. Каждая DDX-функция "знает" каким образом осуществлять обмен данными в обоих направлениях при наличии "контекста" CDataExchange. Библиотека MFC предоставляет целый набор DDX-функций для операций обмена данными различной природы. Следующий пример показывает переопределенную функцию DoDataExchange, где вызываются две DDX-функции и одна DDV-функция (о них речь - ниже):

 



Поделиться:


Последнее изменение этой страницы: 2024-06-27; просмотров: 52; Нарушение авторского права страницы; Мы поможем в написании вашей работы!

infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.013 с.)