Программирование под Win32


Программирование для Windows с помощью библиотеки объектов OWL - стр. 73


В файле 28-4.срр объявлены две глобальные переменные - класс MyWindow и указатель на объект этого класса myWin. Такое объявление (в котором, обратите внимание, фигурирует только имя класса, но нет никакой информации о его содержимом или подчиненности) позволяет в любом месте программы, в частности, в функции любого класса, сослаться на этот объявленный ранее класс или, через его указа­тель, на любые открытые функции-члены и данные-члены этого класса. В нашем примере такая необхо­димость возникнет в функциях отклика класса диалога, где устанавливается текущее значение перемен­ной view и вызывается функция Invalidate() класса главного окна.


268                                                                                                                                  Глава 28

В классе главного окна MyWindow объявляется переменная view, которая будет содержать значение режима отображения графика (IDC_POINT, IDC_CURVE или IDC_HISTO). Было бы изящнее объявить ее не int, a enum; это не сделано для сокращения текста программы. Массив data служит для хранения отображаемых на графике данных. Для создания большей иллюзии полезности программы данные не определены в тексте программы, а читаются из файла с заданным заранее именем 28-4.dat; еще лучше было бы включить в программу стандартный диалог Windows для выбора файла и, тем самым, сделать ее гораздо более универсальной.

Далее в классе MyWindow объявляются замещаемые и новые функции-члены и таблица отклика, со­держащая единственную строку-макрос для отклика на пункт главного меню "Вид.

Класс немодального диалога MyDialog содержит объявление замещаемой функции EvInitDialog(), которая удобна для выполнения необходимых инициализирующих действий, а также трех функций от­клика на нажатие альтернативных кнопок диалога. Соответственно в таблицу откликов класса диалога входят три макроса EV_COMMAND.

Подготовительные для всей программы действия - чтение данных из файла - выполняются в заме­щающей функции SetupWindow(). Данные в файле хранятся в символьной форме, т.е. предполагается, что они были введены с клавиатуры. Для разделения таких данных в файле можно использовать различ­ные символы - двоичный нуль, возврат каретки и др. В файле 28-4 dat данные разделяются символом пробела и для графика, изображенного на рис. 28.9, имеют следующий вид:




Начало  Назад  Вперед



Книжный магазин