Для чтения данных
130 136 141 147 151 153 154 154 152 149 144 139 133 127 121 115 111 107 105 105
Для чтения данных из файла использована функция fscanf(), преобразующая, в процессе чтения, каждое данное в двоичную форму в соответствии с указанным в аргументах функции шаблоном "%d".
Существенным моментом является назначение классу окна стиля CS_VREDRAW. Это назначение выполняется в замещающей функции GetWindowClass(), использование было подробно описано в гл. 26. Стиль CS_VREDRAW определяет полную перерисовку окна (а не только его области вырезки) при любых манипуляциях с размером окна или перемещением по нему окна диалога. Как было показано в гл. 12, полная перерисовка окна, являющаяся неэффективной с точки зрения расходования процессорного времени, необходима в тех случаях, когда изображение в окне строится относительно его нижней (или правой) границы, что типично для вывода графиков.
Открытие немодального диалога осуществляется в функции отклика на нажатие кнопки "Вид..." CmView(). С помощью оператора new создается безымянный объект класса MyDialog и в том же предложении для него вызывается функция класса TDialog Create(), которая служит для вывода на экран немодального диалогового окна. Вспомним, что для активизации модального диалога мы использовали функцию Execute(), а для его завершения - функцию DestroyWindow(). Немодальный же диалог завершать нет особой необходимости, так как он, будучи выведен на экран, не препятствует использованию любых других органов управления главного окна.
Назначение диалога в данном примере заключается в установлении режима вывода графика, для чего предусмотрены три функции отклика: CmPoints(), CmCurves() и CmHisto(). В каждой из этих функций переключателю режима отображения view присваивается соответствующее значение, после чего вызовом функции Invalidate() для объекта главного окна инициируется полная его перерисовка.
Вывод графика осуществляется, как и положено, в функции Paint() главного окна. В ней прежде всего создаются и загружаются в контекст устройства синее перо и синяя кисть, а затем в зависимости от значения переменной view на экран выводятся либо маленькие (радиусом 2 пиксела) кружки, либо линии, соединяющие точки графика, либо прямоугольники, образующие гистограмму. Число 10, фигурирующее в координатах вывода, характеризует смещение графика на 10 пикселов относительно левой границы окна. Ради простоты в программе не выполняется никаких действий по масштабированию графика и не анализируется число введенных данных.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий