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


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


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


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


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


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


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


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


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


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



Контакти
 


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






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




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

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

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

 

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


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