| HTML [44] |
| Visual C++ и MFC [21] |
| c++ [78] |
| php [19] |
| Javascript [15] |
| C# [51] |
| загрузки [0] |
|
XNA [10]
создание игр с помощью xna
|
| Главная » Статьи » Visual C++ и MFC |
В зрительном зале воцарилась тишина, все в ожидании продолжения первой кровавой части о похождениях Class Wizard. По предварительным данным сиквел не менее жесток и кровожаден, чем его предшественник. Люди, видевшие его утверждают, что Чужие-1 , 2, 3 и т. д. отдыхают при сравнении с ним. Занавес приоткрывается, начинается киносеанс. Несмотря на столь красочное вступление ничего сложного не будет. Сегодня вашему вниманию будет представлена вторая вкладка Class Wizard под названием Member Variables. Внеший вид 2-ой вкладки:Для того чтобы полноценно взаимодействовать с элементом управления ( имеется ввиду, например, получать значение из элемента управления, устанавливать его свойства программно) с ним необходимо связать переменную. Вот вы и подошли к тому, зачем нужна данная вкладка. Основное предназначение её - связывание элементов управления с переменными. Существует 2 вида связки: по значению и с помощью управляющей переменной.
Почти с каждым элементом управления можно связать 2 переменные: одну по значению, другую, как программный объект. На вкладке Member Variables есть следующие элементы:
Для того чтобы связать например текстовое поле с переменной необходимо проделать следующие действия
Дополнение:После того как вы связали переменную с элементом управления, у вас появляется возможность наложить ограничения на её свойства. Например как на рисунке: У переменной m_str ( она связана с IDC_EDIT1 ) максимальное количество символов равно 23. Безусловно, вы можете проставить другое значение. Или ещё примерчик : У переменной m_digit выставлено ограничение на минимальное и максимальное значение. Первое должно быть равно 0, второе 100. Для обмена значениями между элементами управления и проверки корректности данных используется функция DoDataExchange класса CWnd. virtual void DoDataExchange( CDataExchange* pDX ); Она реализует механизм DDX/DDV.
При программировании в среде Visual C++ разработчику обычно нет необходимости непосредственно модифицировать код DoDataExchange. Это за него сделает Class Wizard.Для переменной m_str код функции, сгенерированной Class Wizard выглядит так void CEditDlg::DoDataExchange(CDataExchange* pDX){
CDialog ::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CEditDlg)
DDX_Text(pDX, IDC_EDIT1, m_str);
DDV_MaxChars(pDX, m_str, 23);
//}}AFX_DATA_MAP
}
А для m_digit этот код выглядит следующим образом: void CEditDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CEditDlg)
DDX_Text(pDX, IDC_EDIT1, m_digit);
DDV_MinMaxInt(pDX, m_digit, 0, 100);
//}}AFX_DATA_MAP
}
Фактически вы получаете в подарок готовый инструмент по обмену данными и проверки корректности введеных значений. Экскурсию в недра Class Wizard вы продолжите в недалеком будущем. | |
| Просмотров: 1650 | Рейтинг: 5.0/1 |
| Всего комментариев: 0 | |