- •Программирование для Windows
- •Литература
- •Вам необходимо знать и уметь
- •Первая программа
- •Соглашения операционной системы Windows
- •Вызовы функций Windows
- •Идентификаторы, написанные прописными буквами
- •Новые типы данных
- •Описатели
- •Венгерская нотация
- •Точка входа программы
- •Оконная процедура
- •Регистрация класса окна
- •Создание окна
- •Отображение окна
- •Цикл обработки сообщений
- •Оконная процедура
- •Обработка сообщений
- •Воспроизведение звукового файла
- •Сообщение wm_paint
- •Сообщение wm_destroy
- •Сложности программирования для Windows
- •Синхронные и асинхронные сообщения
- •Думайте о пользователе
- •Лекция3. Приступаем с изучению компонент
- •Урок 4. Класс tObjectи его потомки
- •Урок 5. Работа с кнопками
- •Урок 6. Компонент ActionList
- •Урок 7. Работаем с меню (класс tMainMenu)
- •Урок 8. Работаем с контекстным меню (класс tPopupMenu)
- •Урок 9. Компонент Edit
- •Урок 10. Работаем с двумя формами
- •Урок 11. Текст (компоненты tLabel и tStaticText)
- •Урок 12. Компонент ListBox
- •Урок 13. Компонент ComboBox
- •Урок 14. Используем api-функции
- •Урок 15. Разные MessageBox'ы
- •Урок 16. Компонент CheckBox
- •Урок 17. Компонент RadioButton
- •Урок 18. Класс tStrings
- •Урок 19. Класс tStringList
- •Урок 20. Работаем с сетью. Клиент (класс tClientSocket)
- •Урок 21. Работаем с сетью. Сервер (класс tServerSocket)
- •Урок 22. Компонент ImageList
- •Урок 23. Пересчитываем компоненты на форме
- •Урок 24. Форма - добавление методов
- •Урок 25. Форма - добавление полей
- •Урок 27. Значок на панели задач (компонент tTrayIcon)
- •Урок 28. Работаем со сплиттером
- •Урок 29. Компонент Panel
- •Урок 30. Совместное использование сплиттера и Panel'ей
- •Урок 31. Компонент HotKey
- •Урок 32. Компонент StatusBar
- •Урок 33. Установка главной формы приложения
- •Урок 34. Рисование на форме
Урок 34. Рисование на форме
Для рисования на форме надо использовать свойство Canvas формы. Оно имеет тип TCanvas. У этого типа есть целый ряд методов, которые позволяют рисовать различные примитивы, выводить текст, показывать картинки из файла и др.
Вот пример использования:
// Запоминаем текущую кисть.
TColor oldColor = Form1->Canvas->Brush->Color;
// Меняем текущую кисть.
Form1->Canvas->Brush->Color = RGB(255, 0, 0);
// Вывод примитивов.
Form1->Canvas->Ellipse(100, 100, 150, 150);
Form1->Canvas->MoveTo(200, 100);
Form1->Canvas->LineTo(200, 200);
Form1->Canvas->LineTo(300, 100);
Form1->Canvas->LineTo(200, 100);
Form1->Canvas->Rectangle(70, 100, 90, 180);
// Возврат старой кисти и вывод текста.
Form1->Canvas->Brush->Color = oldColor;
Form1->Canvas->TextOutA(100, 160, "Picture");
// Вывод картинки из файла.
Graphics::TBitmap * gr = new Graphics::TBitmap;
gr->LoadFromFile("C:\\1.bmp");
Form1->Canvas->Draw(100, 180, gr);
Этот код можно поместить, например, в обработчике нажатия на кнопке на некоторой форме.
Результат выполнения приведенного кода будет приблизительно таким: