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


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


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


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


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


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


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


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


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


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



Контакти
 


Тлумачний словник
Авто
Автоматизація
Архітектура
Астрономія
Аудит
Біологія
Будівництво
Бухгалтерія
Винахідництво
Виробництво
Військова справа
Генетика
Географія
Геологія
Господарство
Держава
Дім
Екологія
Економетрика
Економіка
Електроніка
Журналістика та ЗМІ
Зв'язок
Іноземні мови
Інформатика
Історія
Комп'ютери
Креслення
Кулінарія
Культура
Лексикологія
Література
Логіка
Маркетинг
Математика
Машинобудування
Медицина
Менеджмент
Метали і Зварювання
Механіка
Мистецтво
Музика
Населення
Освіта
Охорона безпеки життя
Охорона Праці
Педагогіка
Політика
Право
Програмування
Промисловість
Психологія
Радіо
Регилия
Соціологія
Спорт
Стандартизація
Технології
Торгівля
Туризм
Фізика
Фізіологія
Філософія
Фінанси
Хімія
Юриспунденкция






MENUP MENU

END START

WNDPROC ENDP

RET 16

POP EBP

POP EBX

POP ESI

POP EDI

MOV EAX,0

PUSH 0

JNE FINISH

PUSH 0

PUSH OFFSET BUF1

PUSH OFFSET BUF2

JNE L3

JNE FINISH

JMP FINISH

PUSH EAX

PUSH OFFSET PMENU

PUSH WM_SETICON

PUSH 0

PUSH EAX

PUSH 100

JNE L2

JMP FINISH

PUSH 0

JNE L1

PUSH EDI

PUSH ESI

PUSH EBX

MOV EBP, ESP

PUSH EBP

WNDPROC PROC

PUSH 0

PUSH 0

PUSH 0

PUSH 12

PUSH OFFSET BUF2

PUSH 40

PUSH 11

PUSH OFFSET BUF1

PUSH 40

PUSH 0

P DWORD 0

NEWHWND DD 0

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 OFFSET WNDPROC ;процедура вікна

PUSH OFFSET PA ;ім'я ресурсу (DIAL1).

PUSH [HINST]

CALL DialogBoxParamA@20

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

CALL ExitProcess@4

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

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

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

; [EBP+14H] LPARAM

; [EBP+10H] WPARAM

; [EBP+0CH] MES

; [EBP+8Н] HWND

CMP DWORD PTR [EBP+0CH],WM_CLOSE

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

PUSH DWORD PTR [EBP+08H]

CALL EndDialog@8

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

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

PUSH DWORD PTR [EBP+08H]

CALL EndDialog@8

FINISH:

_TEXT ENDS


#define WS_SYSMENU 0x00080000L

#define WS_MINIMIZEBOX 0x00020000L

#define WS_MAXIMIZEBOX 0x00010000L

#define WS_POPUP 0x80000000L

#define WS_CAPTION 0x00C00000L

#define VK_F5 0x74

{

POPUP "File"

{

MENUITEM "&Open", 1

MENUITEM "R&ename", 2

MENUITEM "&Save", 3

}

POPUP "String"

{

MENUITEM "Firs&t - Help", 4,

POPUP "Seco&nd",

{

MENUITEM "Next punk&t", 5,

}

POPUP "Thir&d", Grayed

{

MENUITEM "Next punk&t", 6, Inactive

}

}

MENUITEM "Ex&it", 9

}

#define STR1 11

#define STR2 12

#define IDI_ICON1 100

IDI_ICON1 ICON "calculator.ico"


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

  1. MENUP MENU




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

<== попередня сторінка | наступна сторінка ==>
MENUP MENU | JNE FINISH

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

 

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


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