Создать меню без файла описания ресурсов с помощью функций CreateMenu и CreatePopupMenu
Категория реферата: Рефераты по информатике, программированию
Теги реферата: организация диплом, реферат проект
Добавил(а) на сайт: Божко.
Предыдущая страница реферата | 1 2 3 4 | Следующая страница реферата
Windows-приложение на ассемблере содержит один сегмент данных .data и один сегмент кода .code. В программе использовано 20 функций API. Параметры этим функциям передаются через стек, результат возвращается в регистре ЕАХ.
Директива mode1 задает плоскую модель памяти (flat) и стиль передачи
параметров при входе в процедуры программы и выходе из них (stdcall).
Модель памяти flat обозначает плоскую модель памяти. В соответствии с
плоской моделью памяти компилятор создает программу, которая содержит 32-
битовый сегмент для данных и кода программы. Указание этой модели памяти
заставляет компоновщик создать исполняемый файл с расширением .exe.
Параметр stdcall определяет порядок передачи параметров через стек справа налево.
Директива include включае в программу файл win32.inc.
Функции Win32 API, используемые в программе должны быть объявлены с помощью директивы extrn для того, чтобы компилятор мог сгенерировать правильный код.
При создании окна приложения с помощью CreateMenu получаем дескриптор
меню и используем его в качестве одного из параметров функций
CreateWindowExA. Затем с помощью функции CreatePopupMenu получаем
дескриптор выпадающего меню и вызовом AppendMenu определяем все пункты
наших меню.
Результат работы программы приведен на Рис.1.
Текст программы
1. p386 ; эта директива разрешает транслятору обрабатывать команды
; процессора i386
2. jumps ; транслятор автоматически преобразует команду
;условной
; передачи управления в комбинацию условной и безусловной
; команд если условная команда в силу ограниченности
; области своего действия ;не обеспечивает передачу
; управления по нужному адресу
3. model flat, STDCALL ; выбирается модель памяти для 32- разрядного
; программирования и правила передачи
; параметров функциям
STDCALL, далее
; действующие по
умолчанию
4. include win32.inc ; файл описания структур и констант
5. L equ ; последовательности символов LARGE,
; являющейся именем операции, объявляющей
; следующий за ней операнд
32-разрядным,
; присваивается имя L
6. IDM_QUIT equ 100
7. IDM_ABOUT equ 101
8. MF_ENABLED equ 0
9. MF_POPUP equ 10h
10. MF_OWNERDRAW equ 100h
;Функции Win32 API, используемые программой
11. extrn BeginPaint :PROC
12. extrn CreateWindowExA :PROC
13. extrn DefWindowProcA :PROC
14. extrn DispatchMessageA :PROC
15. extrn EndPaint :PROC
16. extrn ExitProcess :PROC
17. extrn GetMessageA :PROC
18. extrn GetModuleHandleA :PROC
19. extrn LoadCursorA :PROC
20. extrn LoadIconA :PROC
21. extrn RegisterClassA :PROC
22. extrn PostQuitMessage :PROC
23. extrn ShowWindow :PROC
24. extrn TranslateMessage :PROC
25. extrn UpdateWindow :PROC
26. extrn CreateMenu :PROC
27. extrn MessageBoxA :PROC
28. extrn AppendMenuA :PROC
29. extrn DrawMenuBar :PROC
30. extrn CreatePopupMenu :PROC
31. .data ; переопределенное имя, означающее начало сегмента
; данных
32. newhwnd dd 0
33. lppaint PAINTSTRUCT
34. msg MSGSTRUCT
35. wc WNDCLASS
36. hInst dd 0
37. fl dw 0
38. szTitleName db 'Это наше окно',0
39. szClassName db 'ASMCLASS32',0
40. szHello db 'Привет!',0
41. szAppName db 'Сообщение',0
42. hMenu dd 0
43. hsubmenu dd 0
44. item1 db 'Меню',0
45. item2 db 'Выход',0
46. item3 db 'Возврат',0
Рекомендуем скачать другие рефераты по теме: матершинные частушки, антикризисное управление.
Предыдущая страница реферата | 1 2 3 4 | Следующая страница реферата