Реферат: Создать меню без файла описания ресурсов с помощью функций CreateMenu и CreatePopupMenu

Реферат: Создать меню без файла описания ресурсов с помощью функций CreateMenu и CreatePopupMenu




🛑 👉🏻👉🏻👉🏻 ИНФОРМАЦИЯ ДОСТУПНА ЗДЕСЬ ЖМИТЕ 👈🏻👈🏻👈🏻




























































Министерство образования Российской Федерации
Уральского государственного технического
ТЕМА: Создать меню без файла описания ресурсов с помощью функций
CreateMenu
и
CreatePopupMenu
.

Введение...................................................................................................... 3
Постановка задачи...................................................................................... 5
Создание меню без описания ресурсов с помощью функций CreateMenu и CreatePopupMenu....................................................................................... 6
Текст программы........................................................................................ 7
Заключение............................................................................................... 13
Библиографический список...................................................................... 14
Ассемблер- один из самых старых из существующих сегодня языков программирования.Когда-то это был самый основной язык, без которого нельзя было заставить компьютер сделать что-либо полезное.
Постепенно ситуация менялась. Появились более удобные средства общения с компьютером. Но в отличии от других языков ассемблер не умирал, более того он немог этого сделать в принципе.
Если коротко, то ассемблер- это символическое представление машинного языка. Все процессы в машине на самом низком, аппаратном уровне приводятся в действие только командами машинногшо языка.
Отсюда понятно, что несмотря на общее название, язык Ассемблера для каждого типа компьютера свой. Это касается и внешнего вида программ, написанных на Ассемблере, и идей, отражением которых этот язык является.
Известно, что к программированию на языке ассемблера обращаются тогда, когда от программы требуется максимальная скорость исполнения, когда необходимо обеспечить взаимодействие с нестандартными внешними устройствами, когда необходимо полностью использовать возможности процессора и операционной системы. На языке ассемблера можно запрограммировать все, на что способна соответствующая вычислительная машина, то есть ассемблер является машинно-ориентированным языком программирования. Программируя на ассемблере иногда в силу привычки, иногда в силу необходимости, особенно при организации интерфейса пользователя, приходится многократно программировать одни и те же элементарные задачи. В языках высокого уровня эта проблема решена применением стандартных функций и процедур. В ассемблере эта проблема могла бы быть решена за счет библиотек стандартных функций как на уровне исходных текстов, так и объектных кодов, но такие библиотеки не стандартизованы и не распространяются вместе с компиляторами. С появлением Windows 95 ситуация несколько изменилась. Создание приложений на языке ассемблера представляет собой весьма сложную задачу в связи с высоким уровнем интеграции прикладной программы и операционной системы, но теперь нет необходимости многократно решать проблемы пользовательского интерфейса и управления исполнением команд на уровне машинных команд [I]. Они решаются теперь с помощью операционной системы за счет обращения к функциям интерфейса прикладного программирования – Application Programming Interface (API).
Программирование пользовательского интерфейса с применением функций Win32 API основано на использовании так называемых ресурсов. Ресурсами являются соответствующим образом оформленные данные, используемые операционной системой для создания внешнего отображения органов управления приложением, и средства, обеспечивающие ввод данных в процессе исполнения программы в режиме диалога. Ресурсы описываются в текстовом файле с расширением
rc. Файл ресурсов после обработки компилятора ресурсов и получения двоичного файла с расширением res с помощью компоновщика объединяется с исполняемым файлом.
Наиболее очевидным средством управления приложением является меню. Строка меню выводится на экран непосредственно под строкой заголовка. Это меню называется главным. Выбор элемента меню влечет за собой выдачу приложению сообщения WM_COMMAND, содержащего идентификатор пункта меню. Идентификаторы анализируются в оконной процедуре приложения, что обеспечивает соответствующую реакцию на полученное сообщение. Каждый пункт меню определяется тремя характеристиками. Первая определяет то, что будет отображаться в данном пункте меню – это либо строка текста, либо картинка. Вторая характеристика определяет либо константу, посылаемую оконной процедуре в сообщении WM_COMMAND, либо всплывающее меню, которое выводится на экран, когда пользователь выбирает данный пункт меню. Третья характеристика указывает, является ли данный пункт меню разрешенным (enabled), запрешенным (disabled), недоступным (grayed) или помеченным (checked). Эта характеристика пункта меню не является обязательной.
Меню можно создать тремя способами. Можно определить меню в файле описания ресурсов, создать меню без файла описания ресурсов непосредственно в программе с помощью функций CreatMenu, AppendMenu и InsertMenu или с помощью функции LoadMenuIndirect, создав предварительно структуру MENUITEMPLATE. Наиболее простым и понятным при программировании под Windows95 на языке ассемблера является определение меню в файле описания ресурсов с помощью любого текстового редактора.
Моя задача заключается в создание меню без файла описания ресурсов с помощью функций CreateMenu и CreatePopupMenu. Одним из средств создания меню без использования файла описания ресурсов является функции CreateMenu с последующим добавлением необходимого числа пунктов с помощью функции AppendMenu.
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
; эта директива разрешает транслятору обрабатывать команды
2. jumps
; транслятор автоматически преобразует команду
; передачи управления в комбинацию условной и безусловной
; команд если условная команда в силу ограниченности
; области своего действия ;не обеспечивает передачу
3. model flat, STDCALL
; выбирается модель памяти для 32- разрядного
; программирования и правила передачи
; параметров функциям STDCALL, далее
4. include win32.inc
; файл описания структур и констант
5. L equ
; последовательности символов LARGE,
; являющейся именем операции, объявляющей
; следующий за ней операнд 32-разрядным,
;Функции Win32 API, используемые программой

31.
.data
; переопределенное имя, означающее начало сегмента
38.
szTitleName db '
Это
наше
окно
',0

47.
.code
; переопределенное имя, означающее начало
52.
mov [wc.clsStyle], CS_HREDRAW + CS_VREDRAW +

53.
mov [wc.clsLpfnWndProc], offset WndProc

66.
mov [wc.clsHbrBackground], COLOR_WINDOW + 1

67.
mov dword ptr [wc.clsLpszMenuName],0

68.
mov dword ptr [wc.clsLpszClassName], offset szClassName

81.
push L WS_OVERLAPPEDWINDOW ; Style

82.
push offset szTitleName ; Title string

83.
push offset szClassName ; Class name

128.
;----
Оконная
процедура
----

129.
WndProc proc uses ebx edi esi, hwnd:DWORD, wmsg:DWORD,\

140.
;**************************************

143.
;**************************************

152.
call MessageBoxA,0,offset szHello,offset szAppName,MB_OK

191.
;---------------------------------

Моя задача состояла в создании программы без файла описания ресурсов с помощью функций CreateMenu и CreatePopupMenu. Это приложение не выполняет никакой полезной работы и служит для демонстрации некоторых возможностей системы в организации интерфейса пользователя.
1. Зубков С.В. Assembler. Для DOS Windows и Unix. М.: ДМК, 1999
2. Пустоваров В.И. АССЕМБЛЕР. Программирование и анализ корректности машинных программ.
3. Применение TURBO ASSEMBLER для программирования ПЭВМ. Часть1,2.: Методические указания к лабораторному практикуму по дисциплине : «Системное программное обеспечение» / Составитель В.П.Кулюкин. Екатеринбург: изд. ИПК УГТУ, 2000.

Название: Создать меню без файла описания ресурсов с помощью функций CreateMenu и CreatePopupMenu
Раздел: Рефераты по информатике, программированию
Тип: реферат
Добавлен 15:54:02 30 сентября 2005 Похожие работы
Просмотров: 15
Комментариев: 14
Оценило: 4 человек
Средний балл: 5
Оценка: неизвестно   Скачать

Привет студентам) если возникают трудности с любой работой (от реферата и контрольных до диплома), можете обратиться на FAST-REFERAT.RU , я там обычно заказываю, все качественно и в срок) в любом случае попробуйте, за спрос денег не берут)
Да, но только в случае крайней необходимости.

Реферат: Создать меню без файла описания ресурсов с помощью функций CreateMenu и CreatePopupMenu
Спотлайт 5 Класс Контрольные Работы Модуль
Курсовая Работа На Тему Развитие Воли У Подростков
Курсовая работа по теме Порядок эуроциевые (аспергиловые) – Eurotiales
Этическая Проблема Реферат
Ркацители Эссе Сатера
Реферат: Леонардо Да Винчи титан Возрождения
Реферат На Тему Образ Прометея У Трагедії Есхіла
Реферат: What Is History Essay Research Paper What
Реферат На Тему Экономические Споры Порядок Рассмотрения
Курсовая Работа Детали Машин Lg
Требования К Кандидатской Диссертации Гост
Сфера Духовной Жизни Реферат 8 Класс
Структура Эссе В Институте
Реферат: Саудовская Аравия 2
Влагоёмкость горных пород
Курсовая работа по теме Изменение агрофизических свойств дерново-подзолистой супесчаной почвы и урожайности ярового рапса под действием разных систем обработки и удобрений
Рефераты По Экономической Географии
Доклад по теме Влияние мирового кризиса на экономику России
Лекция На Тему Ресурсный Потенциал Предприятия
Реферат по теме Инфекция и иммунитет
Реферат: Планирование маркетинга на примере «25ГосНИИ МО РФ»
Доклад: Антонелло да Мессина
Реферат: Тула

Report Page