Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Assembler.doc
Скачиваний:
10
Добавлен:
20.04.2019
Размер:
12.47 Mб
Скачать

Int MessageBox (hwnd hWnd, char * сообщение, char * заголовок, int стиль) вывод диалогового окна с текстовым сообщением и одной-двумя-тремя кнопками (см. Тему«Стандартные диалоги»)

Int wsprintf (char * строка, char * образец, …) формирование текстовой строки по образцу

Пример. Формирование строки вида (x,y)

.data

Obrazec db "(%d,%d)",0

.data?

Stroka db 20 dup (?)

.code

push y ; wsprintf(Stroka,Obrazec,x,y)

push x

push offset Obrazec

push offset Stroka

call wsprintf

add esp,16 ; выровнять стек

Функции интерфейса графических устройств

HWND GetDesktopWindow() получить дескриптор окна Рабочего стола

HDC GetWindowDC(HWND hWnd) получить дескриптор контекста устройства, связанного с заданным окном

Int ReleaseDc(hwnd hWnd,hdc hDc) освободить заданный дескриптор контекста устройства, связанный с заданным окном

Пример. Получить дескриптор контекста устройства, связанного с Рабочим столом

.data?

hWnd dd ?

hDC dd ?

.code

call GetDesktopWindow ; hWnd=GetDesktopWindow()

mov hWnd,eax

push hWnd ; hDC=GetWindowDC(hWnd)

call GetWindowDC

mov hDC,eax

BOOL MoveToEx(HDC hDC,int x,int y,POINT *) сместить графический курсор в точку (x,y)

BOOL LineTo(HDC hDC,int x,int y) провести линию до точки (x,y)

Пример. Построить отрезок (x1,y1) – (x2,y2)

.code

push 0 ; MoveToEx(hDC,x1,y1,NULL)

push y1

push x1

push hDC

call MoveToEx

push y2 ; LineTo(hDC,x2,y2)

push x2

push hDC

call LineTo

BOOL Rectangle(HDC hDC,int x1,int y1,int x2,int y2) построить прямоугольник

BOOL Ellipse(HDC hDC,int x1,int y1,int x2,int y2) построить эллипс

BOOL Polygon(HDC hDC,POINT * Points,int N) построить N-угольник по координатам вершин

BOOL Polyline(HDC hDC,POINT * Points,int N) построить ломаную по координатам вершин

Пример. Построить треугольник

.data

Treug dd 100,100, 150,150, 50,150

.code

push 3 ; MoveToEx(hDC,x1,y1,NULL)

push offset Treug

push hDC

call Polygon

HBRUSH CreateSolidBrush(int Color) создать сплошную кисть заданного цвета

HBRUSH CreateHatchBrush(int Style,int Color) создать штриховую кисть с заданным стилем и цветом

HPEN CreatePen(int Style,int Width,int Color) создать перо с заданными стилем, толщиной, цветом

HGDIOBJ SelectObject(HDC hDC,HGDIOBJ Object) загрузить параметр в контекст устройства

Пример. Установка кисти зеленого цвета

.data?

GreenBrush dd ?

.code

push 00FF00h ; GreenBrush=CreateSolidBrush(0x00FF00)

call CreateSolidBrush

mov GreenBrush,eax

push GreenBrush ; SelectObject(hDC,GreenBrush)

push hDC

call SelectObject

Пример. Установка пера красного цвета

.data?

RedPen dd ?

.code

push 0000FFh ; RedPen=CreatePen(PS_SOLID,3,0x0000FF)

push 3

push PS_SOLID

call CreatePen

mov RedPen,eax

push RedPen ; SelectObject(hDC,RedPen)

push hDC

call SelectObject

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]