ВУЗ:
Составители:
Основы компьютерной графики для программистов 58
____________________________________________________________________________________________________________________
http://www.ksu.ru/persons/9134.ru.html
Пример рисования на окне c применением Windows API в
Delphi.
Рассмотрим задачу рисования отрезка прямой линии на окне Windows.
1.
Создайте новое обычное оконное приложение в Delphi.
2.
Поместите на форму кнопку из палитры компонентов. По умолчанию Delphi
даст ей имя Button1.
3.
Дважды щелкните мышкой на кнопке Button1 и создайте, таким образом,
процедуру обработки нажатия на кнопку.
Текст процедуры обработки сделайте в следующем виде:
procedure TForm1.Button1Click(Sender: TObject);
var
hdc: THandle;
begin
hdc:= GetDC(Form1.Handle);
LineTo(hdc,100,100);
ReleaseDC(Form1.Handle,hdc);
DeleteDC(hdc);
end;
В трех строках в этой процедуре используются три функции Windows API. Запустите
программу на выполнение. После нажатия на кнопку на главном окне приложения
будет нарисована диагональная линия, идущая из левого верхнего угла клиентской
области окна. Рисование линии происходит с помощью функции
LineTo, которая
рисует линию из текущего положения рисования в точку с указанными координатами
(x,y) на окне. Как ни странно может показаться на первый взгляд, первый параметр
hdc
в этой функции НЕ является непосредственной ссылкой на окно, в которое
осуществляется графический вывод. Этот параметр называется
контекстом
устройства
(Device Context). Смысл его в том, что он является ссылкой на устройство
вывода, которое, в данном случае, представляет собой окно. Под термином ссылка
здесь подразумевается просто некоторый идентификатор, который операционная
система присваивает устройству в ответ на запрос прикладной программы.
Почему наше окно операционная система называет устройством? Потому что
рисование графики средствами операционной системы
может производиться не только
на окно монитора, но, например, на принтер или в область оперативной памяти для
создания цифрового образа изображения. При этом для вывода графики прикладная
программа пользуется одними и теми же функциями для рисования на устройствах,
которые имеют разную физическую природу.
Для получения контекста устройства мы воспользовались функцией
GetDC. На входе
этой функции требуется указать идентификатор окна, с которым мы собираемся
работать в дальнейшем. Мы использовали свойство формы
Form1.Handle, которое
представляет собой идентификатор окна для оконных компонентов Delphi, к каким
относится форма. Этот параметр имеет тип
HWND. Функция GetDC возвращает
значение типа HDC, который в Delphi обозначается как
THandle.
Определение. Под контекстом устройства подразумевается совокупность данных,
описывающих параметры устройства, необходимые операционной системе для работы
с ним.
Основы компьютерной графики для программистов 58 ____________________________________________________________________________________________________________________ Пример рисования на окне c применением Windows API в Delphi. Рассмотрим задачу рисования отрезка прямой линии на окне Windows. 1. Создайте новое обычное оконное приложение в Delphi. 2. Поместите на форму кнопку из палитры компонентов. По умолчанию Delphi даст ей имя Button1. 3. Дважды щелкните мышкой на кнопке Button1 и создайте, таким образом, процедуру обработки нажатия на кнопку. Текст процедуры обработки сделайте в следующем виде: procedure TForm1.Button1Click(Sender: TObject); var hdc: THandle; begin hdc:= GetDC(Form1.Handle); LineTo(hdc,100,100); ReleaseDC(Form1.Handle,hdc); DeleteDC(hdc); end; В трех строках в этой процедуре используются три функции Windows API. Запустите программу на выполнение. После нажатия на кнопку на главном окне приложения будет нарисована диагональная линия, идущая из левого верхнего угла клиентской области окна. Рисование линии происходит с помощью функции LineTo, которая рисует линию из текущего положения рисования в точку с указанными координатами (x,y) на окне. Как ни странно может показаться на первый взгляд, первый параметр hdc в этой функции НЕ является непосредственной ссылкой на окно, в которое осуществляется графический вывод. Этот параметр называется контекстом устройства (Device Context). Смысл его в том, что он является ссылкой на устройство вывода, которое, в данном случае, представляет собой окно. Под термином ссылка здесь подразумевается просто некоторый идентификатор, который операционная система присваивает устройству в ответ на запрос прикладной программы. Почему наше окно операционная система называет устройством? Потому что рисование графики средствами операционной системы может производиться не только на окно монитора, но, например, на принтер или в область оперативной памяти для создания цифрового образа изображения. При этом для вывода графики прикладная программа пользуется одними и теми же функциями для рисования на устройствах, которые имеют разную физическую природу. Для получения контекста устройства мы воспользовались функцией GetDC. На входе этой функции требуется указать идентификатор окна, с которым мы собираемся работать в дальнейшем. Мы использовали свойство формы Form1.Handle, которое представляет собой идентификатор окна для оконных компонентов Delphi, к каким относится форма. Этот параметр имеет тип HWND. Функция GetDC возвращает значение типа HDC, который в Delphi обозначается как THandle. Определение. Под контекстом устройства подразумевается совокупность данных, описывающих параметры устройства, необходимые операционной системе для работы с ним. http://www.ksu.ru/persons/9134.ru.html
Страницы
- « первая
- ‹ предыдущая
- …
- 56
- 57
- 58
- 59
- 60
- …
- следующая ›
- последняя »