СК Современные методы программирования

Цель курса - знакомство с основами программирования графики в Windows.

Среда разработки - любой компилятор C/C++ для ОС Windows версии 2000 года или позже. Рекомендуется компилятор Borland для командной строки bcc32 с опцией -tW для создания оконных приложений.

Теоретические сведения

  1. Стандартный Win32s programmer's reference входит в комплект Borland C++ Builder.
    Start/Programs/Borland C++ Builder 6/Help/
       MS SDK Help Files/Win32s programmer's reference
    

Лабораторные работы

  1. Написать программу, которая регистрирует оконный класс и создает окно. Предусмотреть корректное завершение программы. Реализовать обработчики для событий WM_CREATE, WM_DESTROY. Использовать функции RegisterClass, CreateWindow, ShowWindow, PostQuitMessage.
  2. Написать программу, которая отображает график функции sin(x) на интервале изменения x от -π до +π. Предусмотреть оси координат, отметки на осях, подписи осей. Использовать разные цвета для осей, подписей, графика. Предусмотреть масштабирование графика под изменяемый размер окна (масштаб должен быть одинаковым для обеих координат). Реализовать обработчики для событий WM_SIZE, WM_PAINT. Использовать функции BeginPaint и EndPaint, CreateFont, CreatePen, CreateHatchBrush или CreateBrushIndirect, SelectObject, DrawText, MoveToEx, LineTo, GetClientRect, InvalidateRect.
  3. На основе предыдущей программы написать программу, которая динамически создает оконное меню и клавиатурный акселератор. С помощью меню и акселератора реализовать динамическое изменение свойств графика функции. Реализовать обработчики для события WM_COMMAND. Использовать функции CreateMenu, CreatePopup, InsertMenu, CreateAcceleratorTable, TranslateAccelerator.
  4. На основе предыдущей программы написать программу, которая организует анимацию графика нашей функции (волнообразное движение синусоиды). С помощью таймера нужно реализовать динамическое изменение свойств графика функции. Предусмотреть команды включения и выключения анимации. Реализовать обработчик для события WM_TIMER. Использовать функции SetTimer и KillTimer.

Примеры исходного кода