http://tikitak.narod.ru ---- Главная страница сайта
Шаг 52 - Что такое CSpinButtonCtrl
Создание проекта
В диалоговое окно из прошлого проекта необходимо добавить элемент CSpinButtonCtrl и CEdit, как на рисунке ниже.
Но помимо этого необходимо корректно установить свойства. У CEdit и CSpinButtonCtrl. Это важно, так как при работе результат изменения значений выводится в окно, так как и результат ввода в окно отражается на элементе. Вобщем необходимо установить правильные свойства для корректной совместной работы двух елементов.
Создание кода
Заголовок для классов элементов управления
#include "afxcmn.h"
Классы элементов в диалоговом окне
class CTestDlg : public CDialog
{
...........
protected:
...........
CSpinButtonCtrl cSpin;
CEdit cEdit;
...........
};
Обмена данными
void CTestDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_SPIN1, cSpin);
DDX_Control(pDX, IDC_EDIT1, cEdit);
}
Изменения в функции OnInitDialog
BOOL CTestDlg::OnInitDialog()
{
............
cSpin.SetBuddy(&cEdit);
cSpin.SetRange(0,100);
cSpin.SetPos(50);
return TRUE;
}
Реакция нажатия на кнопку
void CTestDlg::OnSend()
{
CString s;
cEdit.GetWindowText(s);
AfxMessageBox(s);
}
Описание
При использовании данных элементов еще раз хочу обратить ваше внимание на установку свойств. Это важно. Некорректная установка приведет к тому, что совместно эти элементы работать не будут. Вы не замечали какое количество тонкостей должен знать программист. Лично меня это всегда впечатляет.
Итак. Включаем файл с описанием классов, там есть описание и нашего класса. Обьявляет два класса в классе диалогового окна. Эти классы отвечают за элементы управления. Связываем их с использованием DDX для обмена данными между классом и элементом управления.
И теперь в функции инициализации диалогового окна начинаем настройку. SetBuddy устанавливает связь между элементами управления. То есть при изменении данных в одном, изменятся данные и в другом. В параметрах передается указатель на окно, в которое выводятся результаты.
Следующие две функции устанавливают диапазон значений и начальное положение.
В функции OnSend мы выводим число находящееся в окне редактирования. В реальной программе доступ к нему может быть нужен в любой момент, это и демонстрируется.
Предыдущий Шаг | Следующий Шаг | Оглавление By Artem.
Используются технологии uCoz
|