Изучение 32-х битного программирования на ассемблере. Рассмотрение ресурса как некого визуального элемента с заданными свойствами, его выгоды, примеры использования. Используемые функции. Редакторы и трансляторы ресурсов. Результат работы программы.
Аннотация к работе
3. Используемые функции CreateWindowExA ShowWindow UpdateWindow GetMessage WM_CLOSE WM_DESTROY PostQuitMessagе LoadMenu WM_COMMAND DispatchMessage LoadCursor LoadIcon LoadAccelerators ShowWindow WM_SETICON TranslateAccelerator WM_COMMAND 4. Вариант задания и цель работы Понятие ресурса. Введение В операционную систему Windows введено понятие ресурса. Ресурс представляет собой некий визуальный элемент с заданными свойствами, хранящийся в исполняемом файле отдельно от кода и данных, который может отображаться специальными функциями. Битовая картинка. 4. Строка. 5. Диалоговое окно. 6. Меню. 7. Акселераторы. Надо только иметь в виду, что такой ресурс, как диалоговое окно, может содержать в себе управляющие элементы, которые также должны быть описаны, но в рамках описания окна. 1. Иконки. Вот фрагмент программы для установки иконки, указанной в файле ресурсов: INVOKE LoadIconA,[HINST],100; идентификатор иконки (см. файл *.rc)и идентификатор процесса MOV [WC.CLSHICON],EAX Без использования INVOKE: PUSH 100 ; идентификатор иконки (см. файл resu.rc) PUSH [HINST] ; идентификатор процесса CALL LoadIconA MOV [WC.CLSHICON], EAX 2. #define str1 1001 #define str2 2000 #define str3 3000 #define str4 4000 #define str5 5000 #define str6 6000 #define str7 7000 #define str8 8000 //определение строк STRINGTABLE { str1,ВЫХОДИЗПРОГРАММЫ str2,ВЕРСИЯ 1.СОЗДАТЕЛЬ ПОЛТАНОВА ЕЛЕНА str3,ВЫВОД СООБЩЕНИЯ str4,АКСЕЛЕРАТОРЫ str5,СТРОКИ str6,ДИАЛОГОВЫЕ ОКНА str7,ЭТОТ КУРСОР ЗАГРУЖЕН ИЗ ФАЙЛА РЕСУРСОВ str8,ВЫ УЖЕ ЗАГРУЗИЛИ БИТОВУЮ КАРТИНКУ } Для загрузки строки в программу используется функция LoadString. Сообщений, которые приходят на процедуру диалогового окна, гораздо меньше. В начале меню загружается при помощи функции LoadMenu, а затем устанавливается функцией SetMenu. загрузить меню INVOKE LoadMenuA,[HINST],OFFSET PMENU;установить меню INVOKE SetMenu,DWORD PTR [EBP 08H],EAX Меню в файле ресурсов: MENUP MENU { POPUP &Иконки и курсоры { MENUITEM SEPARATOR POPUP И&конки { MENUITEM Ик&онка 1 F1,1 MENUITEM Ико&нка 2 F2,2 MENUITEM Икон&ка 3 F3,3 } MENUITEM К&урсоры F4,4 } POPUP &Еще ресурсы { MENUITEM Б&итовые картинки F7,7 MENUITEM Акселе&раторы F8,8 MENUITEM Стро&ки F9,9 MENUITEM Диалоговые ок&на F10,10 } MENUITEM Выход F11,11 } Пункты меню могут содержать дополнительные параметры, которые определяют дополнительные свойства этих пунктов. Сообщения, пришедшие от акселератора, следует преобразовать в сообщение WM_COMMAND. Этот параметр первоначально игнорируется, когда прикладная программа вызывает ShowWindow, если программа, которая запустила прикладную программу, обеспечивает структуру STARTUPINFO.