русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Примитивы GDI


Дата добавления: 2015-01-16; просмотров: 905; Нарушение авторских прав


Основные типы графических объектов часто называют «примитивами». К ним относятся:

– прямые (отрезки) и кривые; GDI поддерживает прямые линии, прямоугольники, эллипсы (включая окружности), дуги и сплайны Безье; более

 


сложные кривые могут быть изображены как ломаные линии, состоящие из коротких прямых, определяющих кривые; линии рисуются с использованием графического объекта пера, выбранного в контексте устройства;

– закрашенные области; если набор прямых и кривых линий ограничивает со всех сторон некоторую область, то она может быть закрашена с использованием кисти, выбранной в контексте устройства;

– битовые шаблоны (растровые шаблоны, растровые образы) – это двухмерный массив бит, соответствующий пикселам устройства отображения (базовый инструмент растровой графики); битовые образы используются для отображения сложных изображений (значки, курсоры мыши, кнопки панели инструментов);

– текст, отличающийся от других объектов графики. Так как типов текста много и структуры данных, используемые для описания шрифтов (объектов GDI), а также получения информации о них – самые большие среди других структур данных в Windows, поддержка текста – часто наиболее сложная часть в системах компьютерной графики.

Пример вывода текста

Чтобы легче было разобраться в некоторых аспектах работы с графикой в среде Windows, рассмотрим программу, создающую окно, в котором выводится текст «Hello, Windows !» [34].

В тексте программы свыше 80 строк, большая часть из которых является надстройкой и будет повторяться почти в каждой программе для Windows.

#include <windows.h>

LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,

PSTR szCmdLine, int iCmdShow)

{

static char szAppName[] = "Hello" ;



HWND hwnd ;

MSG msg ;

WNDCLASSEX wndclass ;

wndclass.cbSize = sizeof (wndclass) ;

wndclass.style = CS_HREDRAW | CS_VREDRAW ;

wndclass.lpfnWndProc = WndProc ;

wndclass.cbClsExtra = 0 ;

wndclass.cbWndExtra = 0 ;

wndclass.hInstance = hInstance ;

wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION);

wndclass.hCursor = LoadCursor (NULL, IDC_ARROW);

wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH);

wndclass.lpszMenuName = NULL ;

 

wndclass.lpszClassName = szAppName ;

wndclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION) ;

RegisterClassEx (&wndclass) ;

hwnd = CreateWindow (szAppName,

"First Example",

WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,

CW_USEDEFAULT,

CW_USEDEFAULT,

CW_USEDEFAULT,

NULL, NULL,

hInstance, NULL) ;

ShowWindow (hwnd, iCmdShow) ;

UpdateWindow (hwnd) ;

while (GetMessage (&msg, NULL, 0, 0)) {

TranslateMessage (&msg) ;

DispatchMessage (&msg) ;

}

return msg.wParam ;

}

LRESULT CALLBACK WndProc (HWND hwnd, UINT iMsg, WPARAM wParam, LPARAM lParam)

{

HDC hdc ;

PAINTSTRUCT ps ;

RECT rect ;

switch (iMsg) {

case WM_PAINT :

hdc = BeginPaint (hwnd, &ps) ;

GetClientRect (hwnd, &rect) ;

DrawText (hdc, "Hello, Windows !", -1, &rect,

DT_SINGLELINE | DT_CENTER | DT_VCENTER) ;

EndPaint (hwnd, &ps) ;

return 0 ;

case WM_DESTROY :

PostQuitMessage (0) ;

return 0 ;

}

return DefWindowProc (hwnd, iMsg, wParam, lParam);

}

 

В программе создается стандартное окно (рис. П 6.1), в центре рабочей области которого выводится текст «Hello, Windows !».

Это окно имеет все свойства Windows: можно захватить указателем мыши заголовок окна и перемещать его по всему экрану, можно изменить размеры окна, можно развернуть и увеличить его до размеров всего экрана, можно свернуть или завершить программу кнопкой закрытия окна.

Рис. П 6.1. Результат программы Hello

Рассмотрим действия данной программы.



<== предыдущая лекция | следующая лекция ==>
Программные средства отладки | Идентификаторы и типы данных


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.023 сек.