Лекция 3 Контекст устройства Понятие





















Лекция 003 Контекст устройства.ppt
- Количество слайдов: 21
Лекция 3 Контекст устройства
Понятие контекста устройства Контекст является объектом операционной системы посредством которого осуществляется вывод информации на внешнее устройство (монитор, принтер и т. п. ). Контекст содержит в себе информацию об устройстве вывода, объекты, при помощи которых формируется изображение, поле вывода графики. Все функции операционной системы для вывода графики используют контекст.
Порядок графического вывода в ОС MS DOS Данная схема хорошо работает в случае однозадачного режима, когда адресным пространством видео памяти владеет только одна программа.
• Контекст – структура данных, формируемая операционной системой, хранящая информацию о параметрах и характеристиках устройства вывода, посредством которого программа осуществляет графический вывод информации.
Схема графического вывода в ОС WINDOWS
Первый способ получения контекста // Начать графический вывод hdc = Begin. Paint(h. Wnd, &ps); // графический вывод. . . // Закончить графический вывод End. Paint(h. Wnd, &ps);
Второй способ получения контекста // Начать графический вывод hdc = Get. DC(h. Wnd); // графический вывод. . . // Закончить графический вывод Release. DC(h. Wnd, hdc);
Области окна приложения Не клиентская область окна Рабочая область окна Клиентская область окна
Области окна приложения (продолжение) • рабочая область – вся область, занимаемая окном на экране; • неклиентская область – включает стандартные элементы окна, которые, в общем случае, отрисовываюся операционной системой: рамка, строка заголовка, кнопки закрыти, минимизации и т. п. , меню; • клиентская область – вся оставшаяся от неклиентской рабочая область окна.
Действительные области
Недействительные области
Действительные и недействительные области • Области экрана, графическая информация о которых известна операционной системе, называются действительными. • В момент закрытия, открытия, передвижения окон на экране появляются "черные дыры" – области, информация об изображении которых потеряна ОС или неизвестна. Такие области экрана получили название недействительных областей.
Координатная сетка клиентской области окна приложения ( 0, 0 ) XMAX YMAX
Рисование прямоугольника case WM_PAINT: ( 20, 20 ) hdc = Begin. Paint(h. Wnd, &ps); Rectangle(hdc, 20, 300, 200); End. Paint(Wnd, &ps); ( 300, 200 ) break;
Рисование эллипса case WM_PAINT: ( 20, 20 ) hdc = Begin. Paint(h. Wnd, &ps); Ellipse(hdc, 20, 300, 200); End. Paint(Wnd, &ps); ( 300, 200 ) break;
Рисование линии case WM_PAINT: ( 20, 20 ) hdc = Begin. Paint(h. Wnd, &ps); Move. To. Ex(hdc, 20, NULL); Line. To(hdc, 300, 200); End. Paint(Wnd, &ps); ( 300, 200 ) break;
Рисование ломаной линии case WM_PAINT: hdc = Begin. Paint(h. Wnd, &ps); POINT p[3]; ( 20, 20 ) ( 200, 20 ) p[0]. x=20; p[0]. y=20; p[1]. x=200; p[1]. y=20; p[2]. x=100; p[2]. y=150; ( 100, 150 ) Polyline(hdc, p, 3); End. Paint(Wnd, &ps); break;
Рисование замкнутой фигуры case WM_PAINT: hdc = Begin. Paint(h. Wnd, &ps); POINT p[3]; ( 20, 20 ) ( 200, 20 ) p[0]. x=20; p[0]. y=20; p[1]. x=200; p[1]. y=20; p[2]. x=100; p[2]. y=150; ( 100, 150 ) Polygon(hdc, p, 3); End. Paint(Wnd, &ps); break;
Вывод текста case WM_PAINT: ( 20, 20 ) hdc = Begin. Paint(h. Wnd, &ps); Привет ( 200, 20 ) Text. Out(hdc, 20, ”Привет”, 6); End. Paint(Wnd, &ps); break; ( 100, 150 )
Параметры контекста
Параметры контекста (продолжение)

