Работа с ползунками при программировании на C++ стандарта ISO/ANSI (Лабораторная работа № 15 по VisualC++ 2005)

Страницы работы

5 страниц (Word-файл)

Содержание работы

Лабораторная работа №15 по VisualC++ 2005

"Работа с ползунками при программировании на  C++ стандарта ISO/ANSI"

Составил доц. Авраменко В.В.

1 Постановка задачи

          Создать диалоговое окно. Разместить в нем ползунок, текстовое поле и надписи: «Перемістити бігунок» и «Положення бігунка» соответственно над ползунком и над текстовим полем. Ползунок содержит небольшой бегунок, перемещаемый пользователем вдоль шкалы. Когда пользователь перетаскивает бегунок мышью, программа должна выводить его новое положение по  шкале от 1 до 100 (крайнее левое положение- 1, крайнее правое- 100).

2 Общие указания

          Ползунок- управляющий элемент, который обычно применяется для ввода числовых величин- например интенсивности цвета (от 0 до 255). Это объект класса CSlider. С методами этого класса можно познакомиться в Help а также в [1] с.316-317.

2.1 Последовательность действий при создании приложения

1)  Start Page. Create:Project.
Выбрать тип проекта (Project Types) MFC, шаблон- MFC Application,
Name- slider1.

2)   В окне Application Type выбрать Dialog based. Снять флажок Use Unicode Libraries. Щёлкнуть на Finish.

3)  Выбрать вкладку Resource View (Просмотр ресурсов). Раскрыть папку Dialog . Дважды щелкнуть на IDD_SLIDER1_DIALOG. Появится диалоговое окно. Вытереть в нем текст TODO…….

4)  В диалоговом окне из Toolbox разместить управляющие элементы: Slider Control (ползунок) и ab| Edit Control (текстовое окно). Над ползунком разместить надпись «Перемістити бігунок», а над текстовым окном- «Положення бігунка».

5)  В класс Cslider1Dlg добавим элементы данных , соответствующие ползунку  и текстовому окну. Как обычно, надо в диалоговом окне выделить ползунок, вызвать контекстное меню, выбрать в нем Add Variable. В появившемся окне установить доступ private, тип по умолчанию CSliderCtrl, имя даем m_slider1. Для текстового окна введем private  CEdit m_edit1.

6)  Инициализируем ползунок. Как и в других случаях инициализация  выполняется в методе OnInitDialog()  но теперь уже класса Cslider1Dlg. Необходимо задать интервал значений положения ползунка (1- 100). Для этого используются методы  SetRangeMin() и SetRangeMax() класса CSlider. В каждом из них по два праметра. Первый задает числовое значения предела снизу или сверху, а второй принимает значения true (нужно перерисовывать ползунок после изменения интервала) или false (отказываемся от перерисовки). Чтобы вывести в текстовом поле исходное положение ползунка (позиция 1), как обычно, используется метод для вывода в текстовое окно SetWindowTextA(). Ниже приведена часть  метода OnInitDialog().где отображена инициализация ползунка.

BOOL Cslider1Dlg::OnInitDialog()

{

    CDialog::OnInitDialog();

    m_slider1.SetRangeMin(1,false);

    m_slider1.SetRangeMax(100,false);

    m_edit1.SetWindowTextA("1");

    // Add "About..." menu item to system menu.

    return TRUE;  // return TRUE  unless you set the focus to a control

}

7) Запрограммируем обработку сообщений от ползунка. При перемещении бегунка элемент посылает сообщения WM_HSCROLL при горизонтальном перемещении или WM_VSCROLL для вертикальных ползунков.Пусть ползунок будет горизонтальным. Для выбора ориентации ползунка нужно его выделить, вызвать контекстное меню и в нем выбрать  properties. В поле orientation выбираем horizontal.Чтобы создать функцию- обработчик события WM_HSCROLL нужно выделить всё диалоговое окно, вызвать контекстное меню, выбрать properties.В верхней части окна щелкнуть по значку messages. В открывшемся списке обрабатываемых событий выбирать WM_HSCROLL.В появившемся окошке нужно раскрыть список. В нем выбрать строку <Add>OnHScroll и щелкнуть по ней. В результате в файле slider1.cpp появится заготовка для обработчика.

Ниже приведен текст заготовки

void Cslider1Dlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)

Похожие материалы

Информация о работе

Тип:
Методические указания и пособия
Размер файла:
55 Kb
Скачали:
0