http://tikitak.narod.ru ---- Главная страница сайта
Шаг 50 - Что такое CSliderCtrl
Создание проекта
Работаем со старым. Только на диалоговую панель необходимо поместить элемент управления - бегунок. Как внизу.
Создание кода
Включение описание класса
#include "afxcmn.h"
Описание класса в классе окна диалога, и организации обмена данными
class CTestDlg : public CDialog
{
public:
........
virtual void DoDataExchange(CDataExchange* pDX);
.......
protected:
.......
CSliderCtrl csSlider;
.............
};
Реализация обмена данными элемента управления с классом
void CTestDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Control(pDX, IDC_SLIDER1, csSlider);
}
Реакция нажатия на кнопку
void CTestDlg::OnSend()
{
int i=csSlider.GetPos();
char csPos[10];
itoa(i,csPos,10);
AfxMessageBox(csPos);
}
Инициализация диалогового окна
BOOL CTestDlg::OnInitDialog()
{
..........
csSlider.SetRangeMin(0,TRUE);
csSlider.SetRangeMax(10,TRUE);
...........
}
Описание
Класс CSliderCtrl - это класс бегунка. Он включает в себя все функции по управлению этим элементом. Самые приминительные мы и рассмотрим.
Так как этот элемент управления используется не во всех проектах, его описание вынесенно за пределы afxwin.h и находится в afxcmn.h. Вот мы и подключаем описание заголовочного файла.
Далее в классе диалогового окна мы включаем класс. Этот класс имеет конструктор по умолчанию, поэтому создается вместе с диалоговым окном. В последствии с использованием механизма DDX мы связываем класс с элементом управления.
При нажатии на кнопку мы запрограммировали вывод показаний элемента управления. Происходит это следующим образом. В переменную i мы помещаем значение используя функцию csSlider.GetPos(). Обьявляем массив символов. Функция itoa переводит число в строку на основе установленной системы счисления. Нам нужна десятичная. Можете другую если есть настроение. И используя AfxMessageBox доводим до Вашего сведения.
В функции диалогвого окна мы с Вами устанавливаем минимальное и максимальное значения элемента. TRUE отвечает за перерисовку элемента управления. Пользоваться функциями csSlider.SetRangeMin и csSlider.SetRangeMax можно в любой момент. Вот для этого и существует последний параметр. Если елемент не виден, то вероятно и перерисовывать его нет смысла.
Запускайте. Продвинте бегунок на две-три позиции и нажмите кнопку. Появится диалоговое окно с выбраным значением.
Предыдущий Шаг | Следующий Шаг | Оглавление By Artem.
Используются технологии uCoz
|