LAB2 (1075908)
Текст из файла
Лабораторная работа 2.
Программа может послать сообщение в адрес другого окна с помощью одной из двух функций.
Первая функция может послать сообщение обработчику минуя очередь.
LRESULT SendMessage(hwnd, uMsg, wParam, lParam)
Вторая функция посылает сообщение в очередь окна.
BOOL PostMessage(hwnd, uMsg, wParam, lParam)
Пример : PostMessage(hWnd,WM_USER+1, (WPARAM)hWnd, 0);
С помощью следующей функции осуществляется поиск дескриптора окна, которому надо передать сообщение. Второй параметр может быть NULL.
HWND FindWindow(lpszClassName, lpszWindow)
В файле определения модуля:
Первая строка необходима для 16-битных приложений, для 32-битных не нужна.
EXETYPE WINDOWS
Директива CODE имеет следующий синтаксис:
CODE
[FIXED | MOVEABLE]
[DISCARDABLE | NONDISCARDABLE]
[PRELOAD | LOADONCALL]
Опции означают: сегмент фиксированной длины, сегмент может быть перемещён в памяти, может быть выгружен, не может быть выгружен, загружается в память при запуске приложения, загружается при обращении к некоторому его элементу.
Директива DATA имеет следующий синтаксис:
DATA
[NONE | SINGLE | MULTIPLE]
[READONLY | READWRITE]
[PRELOAD | LOADONCALL]
[SHARED | NONSHARED]
Опции означают:сегмент данных отсутствует, 1 сегмент, разделяемый всеми процессами, несколько сегментов данных, данные в сегменте можно читать, но не изменять, можно читать и изменять, сегмент заранее автоматически загружается в память, загружается при обращении к нему, одна копия сегмента разделяется всеми процессами, отдельная копия сегмента загружается для каждого процесса.
Директивы HEAPSIZE и STACKSIZE устанавливают размер локальной динамической памяти и стека программы.
Директива STUB вставляет в файл .EXE кода для WINDOWS программу DOS.
Пример
EXETYPE WINDOWS
CODE PRELOAD MOVEABLE DISCARDABLE
DATA PRELOAD MOVEABLE MULTIPLE
HEAPSIZE 4096
STACKSIZE 8192
Задание.
Сформировать два приложения, которые открывают по одному окну.
В окне 1 по щелчку левой клавиши мыши:
-
При помощи FindWindow() найти дескриптор окна 2. Выдать сообщение об этом.
-
Если операция неудачная, то выдать сообщение об этом.
-
При помощи функции SendMessage() и поля WPARAM передать свой дескриптор второму окну.
-
Выдать сообщение об этом.
В окне 2
-
При получении сообщения WM_USER+1 выдать сообщение об этом.
Сформировать и включить в проект файл определения модуля.
1 | Сформировать 2 приложения. Отправить сообщение от одного к другому. Выдать подтверждение о получении сообщения | Разрешить перемещение модуля 1 в оперативной памяти | Запретить перемещение модуля 2 на жёсткий диск | Данные загружать одновременно с приложением | Данные можно только читать |
2 | -//- | запретить | разрешить | при обращении к ним | Данные можно читать и изменять |
3 | -//- | разрешить | запретить | одновременно с приложением | Данные можно только читать |
4 | -//- | запретить | разрешить | при обращении к ним | Данные можно читать и изменять |
5 | -//- | разрешить | запретить | одновременно с приложением | Данные можно только читать |
6 | -//- | запретить | разрешить | при обращении к ним | Данные можно читать и изменять |
7 | -//- | разрешить | запретить | одновременно с приложением | Данные можно только читать |
8 | -//- | запретить | разрешить | при обращении к ним | Данные можно читать и изменять |
9 | -//- | разрешить | запретить | одновременно с приложением | Данные можно только читать |
10 | -//- | запретить | разрешить | при обращении к ним | Данные можно читать и изменять |
12 | -//- | разрешить | запретить | одновременно с приложением | Данные можно только читать |
13 | -//- | запретить | разрешить | при обращении к ним | Данные можно читать и изменять |
14 | -//- | разрешить | запретить | одновременно с приложением | Данные можно только читать |
15 | -//- | запретить | разрешить | при обращении к ним | Данные можно читать и изменять |
16 | -//- | разрешить | запретить | одновременно с приложением | Данные можно только читать |
17 | -//- | запретить | разрешить | при обращении к ним | Данные можно читать и изменять |
18 | -//- | разрешить | запретить | при обращении к ним | Данные можно читать и изменять |
19 | -//- | запретить | разрешить | при обращении к ним | Данные можно читать и изменять |
20 | -//- | разрешить | запретить | одновременно с приложением | Данные можно только читать |
21 | -//- | запретить | разрешить | при обращении к ним | Данные можно читать и изменять |
22 | -//- | разрешить | запретить | одновременно с приложением | Данные можно только читать |
23 | -//- | запретить | разрешить | при обращении к ним | Данные можно читать и изменять |
24 | -//- | разрешить | запретить | одновременно с приложением | Данные можно только читать |
25 | -//- | запретить | разрешить | при обращении к ним | Данные можно читать и изменять |
26 | -//- | разрешить | запретить | одновременно с приложением | Данные можно только читать |
27 | -//- | запретить | разрешить | при обращении к ним | Данные можно читать и изменять |
Литература.
-
Фролов А.В., Фролов Г.В. Программирование для Windows NT.- М.:ДИАЛОГ МИФИ, 1996.
-
Верма Р.Д. Справочник по функциям WIN32 API.- М.:Горячая линия - Телеком, 2005.- 551 с. : ил.
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.