Студопедия
Новини освіти і науки:
МАРК РЕГНЕРУС ДОСЛІДЖЕННЯ: Наскільки відрізняються діти, які виросли в одностатевих союзах


РЕЗОЛЮЦІЯ: Громадського обговорення навчальної програми статевого виховання


ЧОМУ ФОНД ОЛЕНИ ПІНЧУК І МОЗ УКРАЇНИ ПРОПАГУЮТЬ "СЕКСУАЛЬНІ УРОКИ"


ЕКЗИСТЕНЦІЙНО-ПСИХОЛОГІЧНІ ОСНОВИ ПОРУШЕННЯ СТАТЕВОЇ ІДЕНТИЧНОСТІ ПІДЛІТКІВ


Батьківський, громадянський рух в Україні закликає МОН зупинити тотальну сексуалізацію дітей і підлітків


Відкрите звернення Міністру освіти й науки України - Гриневич Лілії Михайлівні


Представництво українського жіноцтва в ООН: низький рівень культури спілкування в соціальних мережах


Гендерна антидискримінаційна експертиза може зробити нас моральними рабами


ЛІВИЙ МАРКСИЗМ У НОВИХ ПІДРУЧНИКАХ ДЛЯ ШКОЛЯРІВ


ВІДКРИТА ЗАЯВА на підтримку позиції Ганни Турчинової та права кожної людини на свободу думки, світогляду та вираження поглядів



JE WMDESTROY

PUSH EDI

PUSH ESI

PUSH EBX

MOV EBP, ESP

PUSH EBP

WNDPROC PROC

JMP END_LOOP

JMP MSG_LOOP

PUSH OFFSET MSG

PUSH OFFSET MSG

JE END_LOOP

CMP EAX, 0

PUSH OFFSET MSG

PUSH 0

PUSH 0

PUSH 0

PUSH SW_SHOWNORMAL

JZ _ERR

CMP EAX,0

PUSH 0

PUSH WS_OVERLAPPEDWINDOW

PUSH 0

PUSH 0

PUSH 0

PUSH OFFSET WC

PUSH 0

PUSH IDC_CROSS

PUSH 0

PUSH IDI_APPLICATION

PUSH 0

NEWHWND DD 0

WNDCLASS ENDS

WNDCLASS STRUC

MSGSTRUCT ENDS

CLSSTYLE DD ?;стиль вікна

CLWNDPROC DD ? ;вказівник на процедуру вікна

CLSCEXTRA DD ?;інформація про додаткові байти для даної ;структури

CLWNDEXTRA DD ?;інформація про додаткові байти для вікна

CLSHINSTANCE DD ?;дескриптор додатка

CLSHICON DD ?;ідентифікатор ікони вікна

CLSHCURSOR DD ?;ідентифікатор курсору вікна

CLBKGROUND DD ?;ідентифікатор пензля вікна

CLMENUNAME DD ?;ім’я-ідентифікатор меню

CLNAME DD ?;специфікує ім'я класу вікон

;сегмент даних

_DATA SEGMENT DWORD PUBLIC USE32 'DATA'

MSG MSGSTRUCT <?>

WC WNDCLASS <?>

HINST DD 0;дескриптор додатку

TITLENAME DB 'Простеньке вікно', 0

CLASSNAME DB 'CLASS32', 0

CAP DB 'Повідомлення', 0

MES1 DB 'Ви натиснули ліву кнопку мишки', 0

MES2 DB 'Вихід з програми', 0

_DATA ENDS

; сегмент коду

_TEXT SEGMENT DWORD PUBLIC USE32 'CODE'

START:

;отримати дескриптор додатку

CALL GetModuleHandleA@4

MOV [HINST], EAX

REG_CLASS:

;заповнити структуру вікна

;стиль вікна

MOV [WC.CLSSTYLE], style

;процедура обробки повідомлень

MOV [WC.CLWNDPROC], OFFSET WNDPROC

MOV [WC.CLSCEXTRA], 0

MOV [WC.CLWNDEXTRA], 0

MOV EAX, [HINST]

MOV [WC.CLSHINSTANCE], EAX

; піктограма вікна

CALL LoadIconA@8

MOV [WC.CLSHICON], EAX

; курсор вікна

CALL LoadCursorA@8

MOV [WC.CLSHCURSOR], EAX

MOV [WC.CLBKGROUND], 17;колір вікна

MOV DWORD PTR [WC.CLMENUNAME],0

MOV DWORD PTR [WC.CLNAME], OFFSET CLASSNAME

CALL RegisterClassA@4

;створити вікно зареєстрованого класу

PUSH [HINST]

PUSH 400; DY - висота вікна

PUSH 400; DX - ширина вікна

PUSH 100; Y — координата лівого верхнього кута

PUSH 100; X — координата лівого верхнього кута

PUSH OFFSET TITLENAME;ім’я вікна

PUSH OFFSET CLASSNAME;ім’я класу

CALL CreateWindowExA@48

; перевірка на помилку

MOV [NEWHWND], EAX;дескриптор вікна

PUSH [NEWHWND]

CALL ShowWindow@8;показати створене вікно

PUSH [NEWHWND]

CALL UpdateWindow@4; команда перемалювати видиму частину вікна, повідомлення WM_PAINT

;цикл обробки повідомлень

MSG_LOOP:

CALL GetMessageA@16

CALL TranslateMessage@4

CALL DispatchMessageA@4

END_LOOP:

;вихід із програми (закрити процес)

PUSH [MSG.MSWPARAM]

CALL ExitProcess@4

_ERR:

; процедура вікна

; розташування параметрів у стеку

; [EBP+14H] LPARAM

; [EBP+10H] WPARAM

; [EBP+0CH] MES

; [EBP+8Н] HWND

CMP DWORD PTR [EBP+0CH], WM_DESTROY

CMP DWORD PTR [EBP+0CH], WM_CREATE




Переглядів: 554

<== попередня сторінка | наступна сторінка ==>
MSGSTRUCT STRUC | BACKGROUND_INTENSITY equ 80h

Не знайшли потрібну інформацію? Скористайтесь пошуком google:

  

© studopedia.com.ua При використанні або копіюванні матеріалів пряме посилання на сайт обов'язкове.


Генерація сторінки за: 0.004 сек.