Студопедия  
Главная страница | Контакты | Случайная страница

АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Invoke ExitProcess,eax

WinMain proc hInst:HINSTANCE,hPrevInst:HINSTANCE,CmdLine:LPSTR,\

CmdShow:DWORD

LOCAL wc:WNDCLASSEX; резервування стека під структуру

LOCAL msg:MSG; резервування стека під структуру MSG

LOCAL hwnd:HWND; резервування стека під хендл програми

@<mov wc.cbSize,SIZEOF WNDCLASSEX>,<mov wc.cbClsExtra,0>

@<mov wc.style,CS_HREDRAW or CS_VREDRAW >,<mov wc.cbWndExtra,0>

@<mov wc.lpfnWndProc,OFFSET WndProc>,<push hInst>,<pop wc.hInstance >

@<mov wc.hbrBackground,COLOR_WINDOW+1>,<mov wc.lpszMenuName,OFFSET MenuName>

mov wc.lpszClassName,OFFSET ClassName; ім’я класу

invoke LoadIcon,hInstance, IDI_ICON; ресурс піктограми

@< mov wc.hIcon,eax >,< mov wc.hIconSm,eax >

invoke LoadCursor,NULL,IDC_ARROW; ресурс курсору

mov wc.hCursor,eax

invoke RegisterClassEx, addr wc; регістрація класу вікна

invoke CreateWindowEx, \; функція створення вікна за зразком

0,ADDR ClassName, ADDR AppName, \; стиль та адреса імен класу та вікна

WS_OVERLAPPEDWINDOW, \; базовий стиль

CW_USEDEFAULT,CW_USEDEFAULT,\; гориз. та верт. координати вікна

550,400, \; ширина та висота вікна

0,0, hInst,0; дескриптори батьківського вікна, меню, програми

mov hwnd,eax

INVOKE ShowWindow, hwnd,SW_SHOWNORMAL

INVOKE UpdateWindow, hwnd

.WHILE TRUE

INVOKE GetMessage, ADDR msg,NULL,0,0; читання повідомлення

.BREAK.IF (!eax)

INVOKE DispatchMessage, ADDR msg; відправка на обслуговування

.ENDW

mov eax,msg.wParam

ret; повернення з процедури WinMain

WinMain endp; закінчення процедури з ім’ям WinMain

 

WndProc proc hWnd:HWND,uMsg:UINT,wParam:WPARAM,IParam:LPARAM

LOCAL hdc:HDC; резервування стеку під хендл вікна

.IF uMsg==WM_DESTROY

invoke PostQuitMessage,NULL

.ELSEIF uMsg==WM_CREATE; обробка повідомлення WM_CREATE

invoke CreatePen,\; створення пера

PS_SOLID,10,\; завтовшки 10 пікселів

dword ptr color1;

mov hPen1,eax; збереження отриманого дескриптора пера

.ELSEIF uMsg==WM_COMMAND; якщо є повідомлення від меню

mov eax,wParam

.IF ax==IDM_FUNC; якщо є повідомлення про відображення фігур

invoke GetDC, hWnd; отримати дескриптор контексту пристрою

mov hdc, eax; збереження

invoke SelectObject,\; вибирається в контекст

hdc,hPen1; нове перо

invoke CreateHatchBrush, \; створення кісті для замалювання фігури

HS_HORIZONTAL,\; стиль – горизонтальна штриховка

dword ptr color1; значення кольору

mov blueBrush,eax; збереження параметрів кісті

invoke SelectObject,\; вибір об’єкта з параметрами

hdc,\; контекст пристрою

blueBrush; параметри кісті

invoke RoundRect,\

hdc,\; дескриптор контексту пристрою

40,40,\; х-, у-координата верх. лівого кута

500,300,\;х-, у-коорд. нижн. прав кута

40,40;ширина та висота еліпса для рисування кута

 

invoke CreateHatchBrush, \; створення кісті для зарисування фігури

HS_DIAGCROSS,\; стиль – штриховка під 45 зліва та справа

dword ptr color2; значення кольору

mov blueBrush,eax; збереження параметрів кісті

invoke SelectObject,\; вибір об’єкта з параметрами

hdc,\; контекст пристрою

blueBrush; параметри кісті

invoke Polygon,\

hdc,; дескриптор контексту пристрою

addr poln,; адреса масиву координат точок

3; кількість вершин в масиві

invoke ReleaseDC, hWnd, hdc; визволення контексту пристрою

.ELSEIF ax==IDM_AUTOR; якщо є повідомлення "Autor"

invoke GetDC, hWnd; отримання дескриптора контексту пристрою

mov hdc, eax; збереження

invoke SelectObject, hdc,hPen1; отримання в контекст нового пера

invoke SetTextColor,hdc, dword ptr color3; встановлення кольору тексту

invoke TextOut,hdc, 170,10,\; x-, y-коодината стартової позиції

addr mytext, 40; адреса рядка та число символів в рядку

.ELSEIF ax==IDM_CLEAN; очистити

invoke InvalidateRect, hWnd, NULL, TRUE; виклик функції та WM_PAINT

. ELSEIF ax==IDM_HELP; якщо є повідомлення "Help"

invoke MessageBox,NULL,ADDR Help_string,OFFSET AppName,MB_OK

ELSE

invoke DestroyWindow,hWnd; знищення вікна

.ENDIF; закінчення логічної структури

Else

invoke DefWindowProc,hWnd,uMsg,wParam,IParam; обробка та відправка повідомлення до функції WndProc

ret; повернення з процедури

.endif; закінчення логічної структури

xor eax,eax

ret; повернення з процедури

WndProc endp; закінчення процедури WndProc

end start; закінчення програми з ім’ям start

 




Дата добавления: 2014-12-18; просмотров: 111 | Поможем написать вашу работу | Нарушение авторских прав




lektsii.net - Лекции.Нет - 2014-2025 год. (0.007 сек.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав