В конструкторе класса MyWindow создаются
В конструкторе класса MyWindow создаются объекты для окна-панели, двух динамических элементов управления классов THSlider и TScrollBar (см. рис. 28.5), а также для трех статических элементов класса TStatic. Для всех объектов указываются их идентификаторы и расположение в главном окне, а для статических элементов - выводимый текст. Ползунок и линейка прокрутки пока получают настройки по умолчанию, которые, скорее всего, не соответствуют тому, что нужно нам в данном конкретном случае.
Настройка динамических элементов управления осуществляется в замещающей функции SetupWin-dow(). Здесь прежде всего необходимо вызвать исходную, замещенную функция класса TWindow, которая создает все порожденные окна (в нашем случае - дочернее окно и элементы управления), для которых в конструкторе класса MyWindow мы создали OWL-объекты. Если позабыть вызвать замещенную функцию SetupWindow(), главное окно останется пустым. Далее вызовом соответствующих функций классов THSlider и TScrollBar устанавливаются требуемые настройки приспособлений - пределы и шаг шкал, а также начальные положения ручек. Наконец, прямым вызовом функций откликов UpdateFre-quency() и UpdatePhase() выполняется начальное снятие значений с элементов управления и формирование изображения в главном окне.
276 Глава 29
Функции откликов активизируются при выполнении пользователем каких-либо манипуляций с элементами управления. В них вызовом OWL-функции GetPosition() для соответствующего элемента снимается текущее положение его ручки, функцией wspintf() формируется текущее содержимое надписи, и функцией TStatic::SetText() новая надпись выводится в дочернее окно, соответствующее статическому объекту. Для того, чтобы изменения отобразились на экране, вызывается функция Invalidate() для главного окна.
Помимо описанных действий, общих для обеих функций отклика, при входе в функцию UpdateFre-quency() выполняется отбраковка двух кодов нотификации - SB_THUMBTRACK и SB_ENDSCROLL. В результате отбрасываются сообщения от ползунка, возникающие, когда пользователь тащит его ручку, а также сообщения, поступающие при отпускании клавиши мыши. Игнорирование этих сообщений заметно уменьшает мелькание экрана, который перерисовывается только в моменты окончательного выбора нового положения ручки ползунка.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий