Министерство образования Российской Федерации УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Кафедра техни...
42 downloads
218 Views
259KB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Министерство образования Российской Федерации УФИМСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ Кафедра технической кибернетики
ОСНОВЫ РАБОТЫ С ФУНКЦИЯМИ WINDOWS-ИНТЕРФЕЙСА ПРИКЛАДНОЙ ПРОГРАММЫ
МЕТОДИЧЕСКИЕ УКАЗАНИЯ к лабораторной работе по курсу "Системное программное обеспечение" для студентов специальности 210100 – Управление и информатика в технических системах
Уфа 2000
2
Составитель О.В. Трушин УДК 681.3.06
Основы работы с функциями Windows-интерфейса прикладной программы. Методические указания к лабораторной работе по курсу "Системное программное обеспечение" для студентов специальности 210100 – Управление и информатика в технических системах / Уфимск. гос. авиац. техн. ун-т; Сост. О.В. Трушин. – Уфа, 1999. – 18 с.
Приведены базовые теоретические сведения и задания для лабораторной работы по разделу курса "Системное ПО", в котором изучаются технология и основы работы c Windows API – с процедурами и функциями операционной среды Windows, которые могут вызываться прикладными программами. Приведенные алгоритмы реализованы применительно к среде Borland Pascal для Windows и подобраны так, чтобы облегчить DOS-программистам переход к новой для них технологии и принципам создания Windowsпрограмм.
Ил. 2. Табл. 2. Библиогр.: 12 назв.
Рецензенты: Л. П. Костюкова; М. Е. Сидоров
3
Содержание Стр. 1 Цель работы ……………………………………………..……… 4 2 Принципы организации программ для DOS и для Windows
4
3 Windows API: состав и наименования ……………………….. 5 4 Объекты и дескрипторы ……………………………………….. 6 5 Создание окна сообщений …………………………………….. 7 6 Работа с функциями модуля WinCrt …………………………. 8 7 Работа с графическими функциями Windows API …………. 10 8 Практическое задание …………………………………………. 12 Список литературы …………………………………………….. 13 Приложение А …………………………………………………... 14 Приложение Б ……………………………………………….….. 16
4 1 Цель работы Целью работы является практическое освоение технологии и основ работы с Windows API – процедурами и функциями операционной среды Windows, которые могут вызываться прикладными программами. Отрабатываемые в процессе работы алгоритмы подобраны так, чтобы облегчить для DOS-программистов переход к новой для них технологии и принципам создания Windows-программ. 2 Принципы организации программ для DOS и для Windows DOS является однозадачной операционной системой. Программа, выполняющаяся в среде DOS, управляется потоком данных. После инициализации (запуска программы) первая программная процедура вырабатывает данные, и в зависимости от их содержания производится выполнение следующей процедуры, которая вновь генерирует данные и так далее (рисунок 1). При определенных данных производится деинициализация программы.
Инициализация
Процедура №1
Анализ
Процедура №2
Анализ
Деинициализация
Рисунок 1 Windows является многозадачной операционной системой и по сути не может управляться потоком данных. После инициализации (запуска) программы управление получает не какая-либо рабочая процедура этой программы, а диспетчер событий. Событие в терминах Windows понимается как факт свершения элементарного действия, от которого может зависеть ход выполнения программы. Это, к примеру, нажатие клавиши, перемещение курсора мыши, истечение определенного временного интервала. Действия, выполняемые диспетчером событий: а) получение (фиксация) события; б) проверка условия выхода из программы; в) выбор нужной процедуры обработки события (диспетчирование). Когда выбранная процедура завершает работу, управление вновь возвращается диспетчеру событий (рисунок 2). При фиксации события, завершающего программу, диспетчер завершает свою работу и передает управление процедуре деинициализации.
5
Инициализация
Деинициализация
Диспетчер событий
Процедуры обработки событий
Собы тия Рисунок 2
Достоинство такой схемы управления ходом программы – универсальность. При модернизации программ для введения новой реакции на вводимое в программу событие нужно лишь добавить процедуру обработки этого события без затрагивания базового кода программы. Для этого все события в Windows приводятся к стандартному виду определенной структуры (сообщению). 3 Windows API: состав и наименования Термином API (Application Programming Interface) называют интерфейс прикладной программы Windows. Это полный набор процедур и функций операционной среды Windows, которые могут вызываться прикладными программами во время их работы. В Borland Pascal эти процедуры и функции представлены в TPW-модулях. Наиболее употребимыми из этих модулей являются WinTypes (определения констант и типов данных) и WinProcs (стандартные процедуры и функции Windows). Windows API включает около 1000 функций, и для облегчения ориентировки в них принято придерживаться так называемой венгерской нотации – соглашения о принципах именования функций, переменных и констант в Windows. Процедуры и функции именуются в стиле "глагол– существительное", например CreateWindow, SendMessage, TextOut (в отличие от OutText в DOS). Имена переменных и констант должны содержать префикс по типу данных или способу использования. Для констант префикс определяет группу принадлежности и отделяется нижним подчеркиванием. Примеры имен: achM100: array[1..100] of char; { массив символов } ciName: integer; { counter of integer – счетчик целого типа} cwSize: word; { counter of word –переменная, определяющая размер } wm_Close, wm_Quit { window message – константы оконных сообщений }.
6 Таблица 1 – Некоторые префиксы Windows API a
array – массив
l
long – длинное
b
boolean – логическое
n
number – целое число
by
byte – байт
p
pointer – указатель
counter – счетчик
s
string – строка
char – символ
sz
ASCIIZ–строка
w
word – слово
function – функция
x
X-координата
i
integer – целое
y
Y-координата
T
Type of – тип
H
Handle – ссылка
c ch
dw double word – двойное слово fn
4 Объекты и дескрипторы Windows-программы основаны на объектной технологии – окна, меню, пиктограммы, блоки диалога, таймер, инструменты для рисования и прочие элементы создаются и управляются как объекты. Сама программа рассматривается средой Windows также как объект. Объектов довольно много, и для их однозначного определения существуют дескрипторы (или ссылки – термин "Handle"). Дескриптор можно рассматривать как индекс объекта в системном списке объектов Windows (таблица 2). Он определен как 16-битное слово в модуле WinTypes (Type Handle=Word). Подобная адресация объектов снимает ограничения и условности при взаимодействии с аппаратным обеспечением и не требует изменения кода программ при совершенствовании самой Windows. Таблица 2 – Наиболее употребимые ссылки, используемые в Windows HWnd
Окно
HDC
Контекст устройства (Hahdle Device Context)
HIcon
Иконка
HCursor
Курсор
HRgn
Область
HFont
Шрифт
HBrush
Кисть
HPen
Карандаш
HBitmap
Растровое изображение
HMenu
Меню
7 Аналогом дескриптора Windows-объекта в DOS является дескриптор файла, определяемый процедурой Assign(f,'f_name'). Приведем пример простой программы с использованием функций Windows API. {подключение модулей первой необходимости} uses WinTypes,WinProcs; begin {Запуск внешней программы в окне нормального размера} WinExec('d:\windows\pbrush.exe',10); { Генерация звукового сигнала, указанного в файле win.ini } MessageBeep(MB_OK); {Запуск второй внешней программы } WinExec('notepad.exe',sw_shownormal); end. Функция WinExec("имя программы","размер окна") запускает внешнюю программу в отдельном окне, некоторые основные начальные параметры которого можно задать определенными константами. Эти программы далее ведут себя как полноценно работающие Функция MessageBeep генерирует после окончания работы первой запущенной программы звуковой сигнал. 5 Создание окна сообщений Стандартное окно сообщений – один из наиболее часто появляющихся элементов при работе в среде Windows. Это окно создается функцией MessageBox(WndParent: HWnd; Txt, Caption: PChar; TextType: Word): Integer; Здесь первый параметр – дескриптор основного окна программы (он равен 0, если этого окна нет). Следующие два параметра – это сообщения в центре и в заголовке окна. Четвертый параметр может включать перечисленные ниже флаги для элементов окна (указано значение и соответствующая шестнадцатеричная константа). а) флаги оформления кнопок: – – – –
MB_OK ($0000) – окно сообщений с кнопкой "OK"; MB_OKCancel ($0001) – "Cancel"; MB_AbortRetryIgnore ($0002) – "Abort","Retry","Ignore"; MB_YesNoCancel ($0003) – "Yes","No","Cancel";
8 – MB_YesNo – MB_RetryCancel
($0004) – "Yes","No"; ($0005).– "Retry","Cancel".
б) флаги выбора пиктограммы перед текстом сообщения в центре окна: – – – –
MB_IconHand (Stop) ($0010) – "Stop"; MB_IconQuestion ($0020) – "?"; MB_IconExclamation ($0030) – "!"; MB_IconAsterisk (Information) ($0020) – "i". в) флаги назначения свойств и области действия окна сообщения:
– MB_IconApplModal ($0000) – приложение, можно переходить от окна сообщений к другим окнам; – MB_IconSystemModal ($1000) – системное окно, необходимо выбрать кнопку для продолжения работы; – MB_IconTaskModal ($2000) – приложение, но в рамках основного окна. Константы флагов установлены так, чтобы любые комбинации флагов были непротиворечивы. Функция MessageBox возвращает значение в зависимости от нажатой пользователем кнопки в окне сообщений: 0 2 4 6
– – – –
IdAbort IdIgnore IdOK IdYes
– – – –
"Abort", 1 – IdCancel – "Cancel", "Ignore", 3 – IdNo – "No", "OK", 5 – IdRetry – "Retry", "Yes".
Приведем пример программы, демонстрирующей принципы создания окна сообщений. uses WinTypes,WinProcs; begin MessageBox(0,'с окном сообщений','Тренировка',0); If MessageBox(0,'Будет запущен "Блокнот"', 'Предупреждение', MB_OKCANCEL or MB_ICONQUESTION)=IDOK then WinExec('notepad.exe',sw_shownormal); end.
Тренировка с окном сообщений OK
6 Работа с функциями модуля WinCrt Модуль WinCrt был создан для быстрого перевода несложных программ на языке Turbo-Pascal в среду Windows так, что в отдельном окне имитируется работа в стиле DOS в текстовом режиме с использованием не-
9 которых функций модуля Crt Turbo-Pascal (см. приложение А). В заголовке окна указывается имя исполняемого файла. Пример простейшей программы: uses WinCrt; Var sX,sY: word; Begin sX:=ScreenSize.X; sY:=ScreenSize.Y; GotoXY(Sx div 4,Sy div 2); Writeln('Первая программа – по модулю WinCrt'); Writeln('ScreenSize.X=', Sx:4 ); Writeln('ScreenSize.Y=', Sy:4 ); ReadKey End. Здесь вывод информации осуществляется в окно WinCrt, которое автоматически создается (если не было специально инициализировано) при вызове функций Write или Read. Однако возможности работы в этом окне значительно шире, чем в рамках DOS-экрана, поскольку по сути окно WinCrt – графическое. Ряд функций (например, координаты и размеры окна) реализованы уже в стиле Windows. Пример: uses Begin
WinCrt,Strings;
StrCopy( WindowTitle,'Заголовок активного текстового окна'); StrCopy(InactiveTitle,'Неактивное окно'); WindowOrg.X:=10; WindowOrg.Y:=10;
{ координаты окна в пикселах}
WindowSize.X:=600; { размер окна в пикселах} WindowSize.Y:=400; InitWinCrt;
{ создание окна WinCrt }
Writeln('Начальные координаты окна:', WindowOrg.X:9, WindowOrg.Y:9); Writeln('Начальный размер:',WindowSize.X:9,WindowSize.Y:9); ReadKey; ClrScr; GotoXY(ScreenSize.X div 2,ScreenSize.Y div 2); Writeln('0'); { центр окна по знакопозициям } ReadKey; DoneWinCrt; End.
{ закрытие окна WinCrt }
10 Приведем пример программы, демонстрирующей сравнение чисто "досовских" операторов и Windows-функций модуля WinCrt при выводе таблицы символов с кодами от 0 до 255. В отличие от DOS-экрана здесь управляющие символы (с кодами менее 31) не выводятся как текст в принципе, хотя управляющие действия производят. uses WinCrt, WinProcs,WinTypes; { демонстрация работы функций перемещения курсора в окне WinCrt } Var i,x,y: integer; Begin CmdShow:=sw_Maximize; { размер окна } InitWinCrt; { Вывод таблицы символов функциями CRT_DOS } GotoXY(1,1); { левый верхний угол } FOR i:=0 to 255 do begin x:=WhereX; y:=WhereY; { позиция вывода } write(chr(i):3); GotoXY(x+4,y); { выводим ряд по 16 символов } if i mod 16 =0 then GotoXY(1,WhereY+1); { переход в начало следующей строки } end; ReadKey; ClrScr; { Вывод той же таблицы функциями CRT_WIN } CursorTo(2,0); FOR i:=0 to 255 do begin x:=Cursor.X; y:=Cursor.Y; writeChar(chr(i)); { вывод по формату не предусмотрен } CursorTo(x+4,y); if i mod 16 =0 then CursorTo(2,Cursor.Y+1) end; ReadKey; DoneWinCrt End. 7 Работа с графическими функциями Windows API При рисовании в окне WinCrt, как и в любом окне Windows, кроме вывода текста можно работать и с графикой. При этом надо получить контекст дисплея по окну операторами типа MyWin:=FindWindow('TPWinCRT',Pchar(0)); MyDC:=GetDC(MyWin); и при описании переменных указать
11 Var MyWin:hWnd; {окно}
MyDC:hDC; { контекст устройства }
Наиболее употребимые графические функции Windows приведены в приложении Б. Принципы рисования отличаются от используемых в DOS – здесь сначала нужно создать и выбрать инструмент рисования, например: { создание карандаша } Pen1:=CreatePen( ps_Dash, 1,RGB(140,170,200)); { создание одной из кистей } Brush[1]:=CreateHatchBrush(hs_Vertical,RGB(255,0,0)); SelectObject( MyDC,Brush[1]); { выбор кисти } Затем производится вызов процедур рисования. По их окончании необходимо освобождать контекст устройства процедурой ReleaseDC. Приведем пример программы, демонстрирующие стадии процесса создания графических образов функциями Windows API. uses WinCrt, WinTypes, WinProcs; Var MyWin: hWnd; MyDC: hDC; Brush: array[1..3] of hBrush; Pen,Pen1: hPen; p: array[1..4] of TPoint; i: integer;
{ { { { {
окно } контекст устройства } кисти } карандаши } набор координат }
Begin CmdShow:=sw_ShowMaximized; { установка размера окна } InitWinCRT; { создание окна CRT } MyWin:=FindWindow('TPWinCRT',Pchar(0)); MyDC:=GetDC(MyWin); { создание карандашей } Pen:=CreatePen( ps_Solid,4,RGB(0,0,0)); Pen1:=CreatePen( ps_Dash, 1,RGB(140,170,200)); { создание набора кистей } Brush[1]:=CreateHatchBrush(hs_Vertical, RGB(255,0,0)); Brush[2]:=CreateHatchBrush(hs_FDiagonal,RGB(0,255,0)); Brush[3]:=GetStockObject(LtGray_Brush); { По умолчанию используется карандаш Black_Pen и кисть White_Brush } SelectObject( MyDC,Brush[1]); { выбор кисти } Rectangle( MyDC,10,10,100,200); { вывод прямоугольника }
12 CursorTo(2,10); Write('прямоугольники');
{ Вывод текста средствами WinCrt }
SelectObject( MyDC,Pen); { выбор карандаша } { вывод прямоугольника со скругленными углами } RoundRect( MyDC,110,10,200,200,40,90); Pen:=GetStockObject(White_Pen); { переназначение карандаша } SelectObject( MyDC,Pen); { выбор карандаша } SelectObject( MyDC,Brush[2]); { выбор кисти } { вывод эллипса по координатам охватывающего прямоугольника } Ellipse( MyDC,210,10,300,200); SelectObject( MyDC,Pen1); SelectObject( MyDC,Brush[3]);
{ выбор карандаша } { выбор кисти }
{ вывод фрагмента эллипса } Chord( MyDC,310,10,400,200,320,10,470,200); { Вывод текста средствами GDI } SetTextColor( MyDC,RGB(90,90,230)); SetBkColor( MyDC,RGB(250,90,90)); TextOut(MyDC,300,210,'Эллипсы',7); { вывод сектора эллипса } Pie( MyDC,410,10,500,200,420,10,570,200); {генерация координат четырехугольника } For i:=1 to 4 do begin p[i].X:=510+random(100); p[i].Y:= 10+random(190) end; { Вывод заполненного многогранника } PolyGon( MyDC,p,4); ReadKey;
ReleaseDC(MyWin,MyDC); DoneWinCrt; end.
8 Практическое задание Составить программу создания средствами библиотеки WinCrt среды Borland-Pascal следующих элементов: 8.1 В центре окна WinCrt максимального размера вывести таблицу кубов целых чисел от 1 до 100 размером 10х10. Оформить таблицу заголовком и поясняющими надписями. Таблицу вывести двумя способами – сначала с использованием процедур GotoXY/Write, а затем с CursorTo/WriteChar. В правом нижнем углу окна вывести его размеры в пикселах и в знакопозициях.
13 Окаймить таблицу рамкой и ввести линии разделения столбцов и заголовков с использованием графических функций Windows API. 8.2 Создать набор окон сообщений (выводить последовательно) с различными параметрами: – шесть окон с различными наборами кнопок; – четыре окна с тремя кнопками и различными пиктограммами назначения; – три окна с различной областью действия. 8.3 Вывести равномерно по области окна семь геометрических фигур: – – – –
два прямоугольника – с прямыми и со скругленными углами; три эллипса – полный, сектор и сегмент; треугольник; пятиугольник.
Фигурам назначить различное заполнение и снабдить их соответствующими подписями. Список литературы 1. Биллинг В.А., Мусикаев И.Х. Visual C++ 4. Книга для программистов. – М.: "Русская редакция", 1996. – 352 с. 2. Бондарев В.М., Рублинецкий В.И., Качко Е.Г. Основы программирования. – Харьков: Фолио, 1997. – 368 с. 3. Рубенкинг Н. Программирование в Delphi для "чайников". – Киев: "Диалектика", 1996. – 304 с. 4. Калверт Ч. Программирование в Windows: Освой самостоятельно за 21 день / Пер. с англ. – М.: БИНОМ, 1995. – 496 с. 5. Культин Н.Б. Программирование в Turbo Pascal 7.0 и Delphi. – СПб.: BHV – Санкт–Петербург, 1998. – 240 с. 6. Сван Т. Программирование для Windows в Borland C++ / Пер. с англ. – М.: БИНОМ, 1995. – 480 с. 7. Сидоров М.Е., Трушин О.В. Школа работы на IBM PC. Часть 2: Программирование в среде Turbo Pascal. – Уфа, 1996. – 160 с. 8. Сурков Д.А., Сурков К.А., Вальвачев А.Н. Программирование в среде Borland Pascal для Windows. – Минск: Высш. шк., 1996. – 432 с. 9. Федоров А., Рогаткин Дм. Borland Pascal в среде Windows. – Киев: "Диалектика", 1993. – 656 с. 10. Microsoft Press: Руководство программиста по Microsoft Windows 95 / Пер. с англ. – М.: "Русская Редакция", 1997. – 600 с.
14 ПРИЛОЖЕНИЕ А (справочное) Таблица А1 – Функции модуля WinCrt Наименование
Действие
ReadKey
Считать символ с клавиатуры
ReadBuf
Считать в переменную текущую строку
KeyPressed
Индикатор нажатия клавиши на клавиатуре (возвращает true/false)
WhereX WhereY
Определить координату (X или Y) текущего расположения курсора
Таблица А2 – Процедуры модуля WinCrt. Наименование
Действие
Read Readln Write Writeln
Ввод и вывод символов как аналоги стандартных процедур Turbo–Pascal для DOS
WriteChar(C)
Вывести одиночный символ
WriteBuf
Вывести набор символов
ClrScr
Очистить экран с установкой курсора в верхний левый угол
ClrEol
Убрать все символы от позиции курсора до конца строки
CursorTo(X,Y) GotoXY(X,Y)
Переместить курсор в указанную позицию текстового окна. Начало координат для CursorTo – (0,0), для GotoXY – (1,1)
ScrollTo
Скроллинг (автопрокрутка) экрана при выводе символов в невидимую область
15 Продолжение таблицы А2 TrackCursor
Листать экранное окно, оставляя при этом курсор видимым
InitWinCrt
Создать WinCrt–окно
DoneWinCrt
Завершить работу с WinCrt–окном
Таблица А3 – Переменные модуля WinCrt Наименование WindowOrg
Тип Tpoint (*.X,*.Y)
Значение Начальные координаты окна
WindowSize
Tpoint
Начальные размеры окна
ScreenSize
Tpoint
Размеры по горизонтали и вертикали в знакоместах
Cursor
Tpoint
Координаты текущей позиции курсора ( тип Read–Only, координаты левого верхнего угла 0,0)
Origin
Tpoint
Координаты левого верхнего угла окна (тип Read–Only)
InactiveTitle
Pchar
Заголовок неактивного окна
AutoTracking
Boolean
Автоматическая прокрутка экрана
CheckEOF
Boolean
Индикатор конца файла
CheckBreak
Boolean
Индикатор нажатия Ctrl–Break
WindowTitle
array [0..79] of Char
Заголовок активного окна
16 ПРИЛОЖЕНИЕ Б (справочное) Функции GDI для отображения типовых графических объектов SetPixel(DC,x,y,Color); 1
Вывод точки (x,y) цветом Color (типа TColorRef = Longint). Цвет пиксела можно определить функцией GetPixel(DC,x,y).
(x,y) TColorRef = RGB(Red, Green, Blue)
LineTo(DC,x,y); 2
ТП
Отрезок прямой к точке (x,y) от текущей позиции (ТП) дисплейного контекста DC.
(x,y)
ТП можно перенести в точку (x,y) процедурой MoveTo(DC,x,y). Rectangle(DC, x1,y1,x2,y2); 3
Прямоугольник с левым верхним углом (x1,y1) и правым нижним (x2,y2). Граница прорисовывается текущим карандашом, заполнение – текущей кистью. RoundRect(DC, x1,y1, x2,y2, xd,yd);
4
(x1,y1) yr=yd/2 xr=xd/2 (x2,y2) 1
Ломаная линия по N точкам из массива точек Points (типа TPoint = record x, y: Integer; end;) Polygon(DC, Points,N);
6
(x2,y2)
Прямоугольник со скругленными углами в границам x=x1..x2, y=y1..y2. Углы скругляются по эллипсу с размерами осей xd,yd . Polyline(DC, Points,N);
5
(x1,y1)
N 1
Многоугольник по N точкам из массива Points. Контур замыкается по точкам 1 – N. PolyPolygon(DC, Points,Pn,N);
7
2
N=3 Набор N многоугольников, получаемых по массиву точек Points, где количество вершин в каждом из них определяется в массиве целых чисел Pn. Контуры автоматически не замыкаются (в отличие от функции Polygon).
2 N
17 Ellipse(DC,x1,y1,x2,y2); 8
(x1,y1)
Эллипс, вписанный в прямоугольник с левым верхним углом (x1,y1) и правым нижним (x2,y2). Граница прорисовывается текущим карандашом, а заполнение – кистью.
(x2,y2)
Arc(DC,x1,y1,x2,y2,x3,y3,x4,y4); 9
Дуга эллипса, вписанного в прямоугольник по углам (x1,y1),(x2,y2). Дуга вырисовывается по области, проходимой лучом из центра эллипса между точками (x3,y3) и (x4,y4).
(x4,y4) (x3,y3)
Pie(DC,x1,y1,x2,y2,x3,y3,x4,y4); 10
Заполненный сектор эллипса, дуга строится аналогично Arc, центр эллипса соединяется с концами дуги отрезками прямой. Chord(DC,x1,y1,x2,y2,x3,y3,x4,y4);
11
Заполненная хорда эллипса, дуга строится аналогично Arc. CreatePen(Style,Width,Color);
12
Создание карандаша со стилем линии Style, шириной Width и цветом Color. Большинство стилей действуют при Width =1. CreateSolidBrush(Color);
Создание кисти для сплошной закраски цве13 том Color (тип TColorRef, обычно его определяют как RGB(Red, Green, Blue)). Для предопределенных стилей закраски используют CreateHatchBrush(Index, Color), для растров CreatePatternBrush(Bitmap). FloodFill(DC,x,y,Color); 14
Заполнение области, ограниченной цветом Color, из точки (x,y) текущей кистью. Для области с многоцветной границей используется функция ExtFloodFill(DC,x,y,Color,Type).
Style Width Solid Hatch Pattern
Color (x,y)
18
Составитель ТРУШИН Олег Владимирович
ОСНОВЫ РАБОТЫ С ФУНКЦИЯМИ WINDOWS-ИНТЕРФЕЙСА ПРИКЛАДНОЙ ПРОГРАММЫ
МЕТОДИЧЕСКИЕ УКАЗАНИЯ к лабораторной работе по курсу "Системное программное обеспечение" для студентов специальности 210100 – Управление и информатика в технических системах
Редактор
А.В. Климова
ЛР № 020258 от 08.01.98
Подписано к печати
. .
Формат 60 Х 84 1/16.
Бумага оберточная. Печать плоская. Гарнитура Таймс. Усл. печ. л. 1,0. Усл. кр. - отт. 0,9
Уч. - изд. л. 0,9.
Тираж 50 экз.
Заказ № Уфимский государственный авиационный технический университет Редакционно-издательский комплекс УГАТУ 450000, Уфа - центр, ул. К.Маркса, 12