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


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


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


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


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


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


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


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


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


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



JNE FINISH

PUSH 0

PUSH OFFSET BUF1

PUSH OFFSET BUF2

JNE L3

JNE FINISH

JMP FIN

MOV EAX,1

PUSH EAX

PUSH OFFSET PMENU

PUSH WM_SETICON

PUSH 0

PUSH EAX

PUSH 100

JNE L2

JMP L5

JNE L1

PUSH EDI

PUSH ESI

PUSH EBX

MOV EBP, ESP

PUSH EBP

WNDPROC PROC

PUSH 0

JMP MSG_LOOP

PUSH OFFSET MSG

PUSH OFFSET MSG

JNE MSG_LOOP

CMP EAX, 0

PUSH OFFSET MSG

JE END_LOOP

CMP EAX, 0

PUSH OFFSET MSG

PUSH 0

PUSH 0

PUSH 0

MOV NEWHWND,EAX

PUSH OFFSET PA

PUSH 0

PUSH OFFSET WNDPROC

PUSH 0

PUSH OFFSET PMENU

PUSH 12

PUSH OFFSET BUF2

PUSH 40

PUSH 11

PUSH OFFSET BUF1

PUSH 40

PUSH 0

P DWORD 0

NEWHWND DD 0

VK_F5, 4, VIRTKEY, ALT

MENUP ACCELERATORS

STRINGTABLE

DIAL1 DIALOG 0, 0, 240, 120

STYLE WS_POPUP | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX | WS_MAXIMIZEBOX

CAPTION "Приклад діалогового вікна"

FONT 10, "Arial"

{

}

{

STR1, "Повідомлення"

STR2, "Версія программи 1.00"

}

{

}

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

_DATA SEGMENT DWORD PUBLIC USE32 'DATA'

MSG MSGSTRUCT <?>

WC WNDCLASS <?>

RC RECT <?>

PNT PAINTSTR <?>

pPoint POINT <?>

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

TITLENAME DB 'Малюнки', 0

CLASSNAME DB 'CLASS32', 0

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

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

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

HDC DWORD ?

MEMDC DWORD ?

YM DWORD ?

XM DWORD ?

XP DWORD ?

YP DWORD ?

HBMP DWORD ?

BUF1 DB 200 dup (?)

BUF2 DB 200 dup (?)

PA DB 'DIAL1',0

PMENU DB "MENUP",0

_DATA ENDS

;---------------------------------------------------------

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

_TEXT SEGMENT DWORD PUBLIC USE32 'CODE'

START:

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

CALL GetModuleHandleA@4

MOV [HINST], EAX

;------------------------

PUSH [HINST]

CALL LoadStringA@16

;------------------------

PUSH [HINST]

CALL LoadStringA@16

;------------------------створення діалогового вікна

;Загружаємо акселератор

PUSH [HINST]

CALL LoadAcceleratorsA@8

MOV ACC,EAX;запам'ятати декстриптор таблиці

;створити немодальний діалог

PUSH [HINST]

CALL CreateDialogParamA@20

;візуалювати немодальний діалог

PUSH 1 ;SW_SHOWNORMAL

PUSH [NEWHWND]

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

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

MSG_LOOP:

CALL GetMessageA@16

;транслювати повідомлення акселератора

PUSH [ACC]

PUSH [NEWHWND]

CALL TranslateAcceleratorA@12

CALL TranslateMessage@4

CALL DispatchMessageA@4

END_LOOP:

CALL ExitProcess@4

;------------------------------------------------------------

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

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

; [EBP+14H] LPARAM

; [EBP+10H] WPARAM

; [EBP+0CH] MES

; [EBP+8Н] HWND

CMP DWORD PTR [EBP+0CH],WM_CLOSE

;закрити діалогове вікно

L1:

CMP DWORD PTR [EBP+0CH],WM_INITDIALOG

;загрузка піктограми

PUSH [HINST]

CALL LoadIconA@8

PUSH DWORD PTR [EBP+08H]

CALL SendMessageA@16

;загрузити меню

PUSH [HINST]

CALL LoadMenuA@8

;встановлення меню

PUSH DWORD PTR [EBP+08H]

CALL SetMenu@8

;------------------------

L2:

;перевірка дій з елементами діалогового вікна

;в даному випадку - це меню

CMP DWORD PTR [EBP+0CH],WM_COMMAND

;перевірка ідентифікатора пункта меню

CMP WORD PTR [EBP+10H],4

;повідомлення

PUSH 0 ;МВ_ОК

CALL MessageBoxA@16

L3:

;перевірка ідентифікатора пункта меню

CMP WORD PTR [EBP+10H],9


Читайте також:

  1. Обробка (Finishing) 1




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

<== попередня сторінка | наступна сторінка ==>
MENUP MENU | Науково-популярна стаття

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

  

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


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