Математика

Физика

Химия

Биология

Техника и    технологии

Выпускается с 1991 гола Фролов Л, В., Фролов Г. В. Ф91 Программщтованислля IBM OS/2 Warp: Ч. 1. - М.: ДИАЛОГ-МИФИ, 1996. — 288 с. — (Библиотека системного ир01раммиста; Т. 25) ISBN 5-86404-077-0 (Т. 25) Эта книга - первая в серии книг, посвященных программированию для операционной системы IBM OS/2 Warp. Основная задача книги - научить вас создавать приложения для графической оболочки Presentation Manager. Мы расскажем о том, как работают событийно-управляемые приложения, рассмотрим механизм передачи сообщений, научим создавать и использовать окна, органы управления и другие ресурсы, приведем исходные тексты приложений. Книга предназначена всем, кто собирается самостоятельно освоить программирование для операционной системы IBM OS/2 Warp.
ВВЕДЕНИЕ
"Ш ПР°ЯОЛЖИМ зна*0мство с операционной системой IBM находится на переднем KP3ti современных технологий наряду с та-кмми операционными системами, как Microsoft windows NT и Microsoft Windows 95 Напомним, что это знакомство началось в 20-м томе „ашей серии книг »Би6лиотека системно, > программиста", в котором мы рассмотрели принципы, положенные в основу IBM оъ/2 \\arp, рассказали о том, как устанавливать, настраивать и использовать эту операционную систему. Мы также рассмотрели ее сетевые возможности
Теперь, когда вы уже умеете работать в среде шм OS/2 Warp как пользователь, настало время научиться создавать приложения длн этой операционной системы
Скажем сразу, что ^ шм OS/2 Waip мо^о сшдавать приложения двта разных типов Первый тип приложений в основном предназначен для работы в текстовом ре-жиме (текстовые приложения), второй - в графическом (приложения Presentation Ма-
Если вы раньше программировали только д.1я операционной системы MS-DOS, то вы >-же создавали текстовые приложения. В составе MS.DOs нет удобных средств для nT^^OBOr° 1ИИ Пифического вЫьода, поэтому большинство программ раоотают напрямую с видеопамятью. фшкчески расположенной на плате ви-
Операционная система IBM OS/2 Waip ИС1ЮЛЬЗует защищенный ре™ работы процессора, причем в большинстве случаев пРиложет|ЯМ запрещается обращаться к портам периферийных устройств и видеопамяти в обход соответствующих драйверов. dro ограни .ение. однако, с лихвой компенсируйся удобными и быстродействующими Функциями, достмшыми приложениям в рамк^ программного интерфейса IBM OS/2 ^Л10М программирование ^Ранного вывода для текстового режима заметно проще, чем для операцИонной системы MS-DOS'
1ем не менее текстовый режим не удовлетворяет современным требованиям. 1редъяв..1яемым к интерфейсу пользователя. Пра(сгически все приложекиЯ- составлен-иые атя новых операционных систем, работают в графическом режиме, реализуя ,ра-
"рическии интерфейс потмокатетя Поэто\г\- TI,, . к -
*, к* ML пользователя. иозшм> д,1я нас в большей степени представляет
адтерес создание (рафических приложений, KS/2 Warp н реа,1ИЗУет графический интерфейс пользователя). Такие приложения мы . дальнейшем для сокращения будем называть приложениями Presentation Manager. Стрчюура прнюженнй Presemaiion Manage,. в корне ОТЛичастся от привычной вам программ MS-DOS, причем главных, образом за счет ТОго. что приложения со6ытийн°->11Равляемыми (так же как н приложения
^Если вы программировали только для MS-bos и никогда не создавали приложении для операционной системы Microsoft Windows, то самое трудное для вас будет пе-реиги от обычного, линейного программирования к событийно-упра^яемот-. Однако МЫ постараемся ц, возможности облегчить та^й переход.

ОГЛАВЛЕНИЕ
ВВЕДЕНИЕ..............................................................................................3
Благодарности..................................................................................................................5
Как связаться с авторами...............................................................................................5
1. ОСНОВЫ PRESENTATION MANAGER................................................6
Базовые понятия и определения...............................................................S
Окна в приложениях Presentation Manager....................,.............................................8
Функция окна..................................................................................................................9
Сообщения.....................................................................................................................10
Фокус ввода....................................................................................................................12
Цикл обработки сообщений........................................................................................12
Структура приложения Presentation Manager..........................................13
Инициализация приложения......................................................................................13
Создание очереди сообщений.....................................................................................14
Регистрация класса главного окна приложения.......................................................15
Создание главного окна приложения........................................................................19
Запуск цикла обработки сообщений..........................................................................25
Завершение работы приложения................................................................................26
Функция окна................................................................................................................27
Приложение MYWINDOW.....................................................................30
Определения и глобальные переменные.......................................-............................35
Функция main................................................................................................................36
Функция окна................................................................................................................37
Ресурсы приложения....................................................................................................39
Файл определения модуля...........................................................................................40
Трансляция исходных текстов приложения..............................................................40
2. ЭЛЕМЕНТАРНАЯ ТЕОРИЯ ОКОН....................................................43
Иерархия окон и родственные связи......................................................43
Родительские и дочерние окна....................................................................................43
Окно рабочего стола.....................................................................................................44
Окно Frame Window.....................................................................................................45
Функции для просмотра дерева окон.........................................................................46
. Отношения собственности..........................................................................................46
Удочерение окна...........................................................................................................47
Изменение размеров и расположения окна...........................................47
Передача сообщений функции окна.......................................................49
Создание дочерних окон.........................................................................52
Приложение WINTREE............................................................. 53
Файл wmtree.h................................................................................................................60
Файл wmtree.rc...............................................................................................................60
Файл wmtree.def...................................................................................................'..........61
Определения..................................................................................................................61
Функция main................................................................................................................61
Функции окон...............................................................................................................64
3. СОЗДАНИЕ МЕНЮ...........................................................................65
Классификация типов меню...................................................................65
Подготовка шаблона меню......................................................................6S
Обработка сообщения WM_COMMAND...............................................72
Плавающее меню.....................................................................................73
Приложение MENUAPP.........................................................................7.6
Глобальные переменные..............................................................................................S3
Функция main................................................................................................................S3
Функция окна WndProc...............................................................................................84
Файл menuapp.h.............................................................................................................86
Файл ресурсов приложения MENUAPP....................................................................87
Файл определения модуля...........................................................................................89
Изменение системного меню..................................................................89
Динамическое создание меню................................................................93
Приложение MENU MOD.......................................................................95
Глобальные переменные............................................................................................103
Функция main..............................................................................................................104
Функция окна WndProc.............................................................................................104
Файл menumod.li.........................................................................................................104
Файл ресурсов menumod.rc........................................................................................105
Файл определения модуля.........................................................................................106
4. РИСОВАНИЕ ТЕКСТА.....................................................................107
Пространство отображения....................................................................108
Функция GpiChavStringAt.......................................................................ПО
Система координат.................................................................................U1
Приложение TEXTOUT..........................................................................112
Функция окна приложения WndProc.......................................................................117
Фай;! textout.h..............................................................................................................49
Фа Га textout.rc.............................................................................................................119
Файл texiout.def............................................................................................................U9
Другие функции для рисования текста..................................................120
5. КЛАВИАТУРА...................................................................................123
Сообщение WM_CHAR..........................................................................124
Скан-код.............................................................................................................,.........124
Виртуальный код клавиши........................................................................................124
Код символа.............................................................................................................. 126
Счетчик повторений.................................................................................................. ]2у
Флаги............................................................................................................................127
Макрокоманда CHARMSG....................................................................................... ]2$
Приложение KBDMSG...........................................................................129
Глобальные переменные............................................................................................137
Функция main..............................................................................................................137
Функция WndProc.......................................................................................................13s
Функция SetCourierFont.............................................................................................140
Функция Reset Font.....................................................................................................140
Файл kbdmsg.h.............................................................................................................Hi
Файл kbdmsg.rc............................................................................................................141
Файл kbdmsg.def...........................................................................................................141
6. РАБОТА С МЫШЬЮ.......................................................................142
Определение количества кнопок............................................................142
Нумерация кнопок........................................;.........................................143
Сообщения, поступающие от мыши......................................................143
Сообщения от кнопок мыши....................................................................................143
Сообщение WM_MOUSEMOVE...............................................................................145
Сообщение WM_HITTEST........................................................................................145
Другие сообщения.......................................................................................................146
Функции для работы с мышью............................................=.................147
Захват курсора мыши..................................................................................................147
Определение координат курсора мыши...................................................................147
Определение состояния клавиш мыши...................................................................I4S
Установка позиции курсора мыши...........................................................................149
Как убрать курсор мыши...........................................................................................149
Приложение MOUSEMOV.....................................................................149
Глобальные переменные............................................................................................156
Функция main..............................................................................................................156
Функция окна WndProc.............................................................................................157
Файл mousemov.h.......:................................................................................................159
Файл mousemov.rc.......................................................................................................1^9
Файл определения модуля mousemov.def.................................................................160
Изменение внешнего вила курсора мыши............................................^0
Управление курсором мыши с помощью клавиатуры..........................16-
Приложение POINTER..........................................................................163
Глобальные переменные............................................................................................171
Функция main..............................................................................................................I'1
Функция окна WndProc.............................................................................................172
Функция DrawMousePir.............................................................................................''
Файл pointer.h..................................................................................................-............1'_
Файл pointer.rc.............................................................................................................^
Файл pointer.def...........................................................................................................*'э
176
176 177
ТАЙМЕР.....................................................................................
Запуск и остановка таймера............................................................
Сообщение WMJTIMER........................................................................" <
Приложение ВЕЕР..................................................................................177
Функция WndProc.......................................................................................................1&1
ФайлЪеср.Н..................................................................................................................Ш
Файл beep.rc.................................................................................................................183
Фай;! beep.def...............................................................................................................1S3
Другие функции для работы с таймером...............................................1S3
Функция WiuGelCurrentTime....................................................................................1S3
Функция WinQueryMsgTtme......................................................................................1S4
Функция DosGetDateTime.........................................................................................184
Приложение CLOCK..............................................................................1S4
.Глобальные переменные............................................................................................193
Функция main..............................................................................................................193
Функция окна WndProc.............................................................................................194
Файл clocK.h.................................................................................................................195
Файл описания ресурсов clock.rc..............................................................................196
Файл определения модуля clock.def..........................................................................196
8. ОРГАНЫ УПРАВЛЕНИЯ.................................................................197
Кнопки....................................................................................................198
Функция WinCreateWindow.......................................................................................19S
Сообщение WM_CREATE.........................................................................................200
Стили кнопок..............................................................................................................201
Установка размеров и расположения кнопки.........................................................203
Извещение от кнопки................................................................................................204
Сообщения WM^SYSCOMMAND и WM_HELP...................................................206
Управление кнопками................................................................................................207
Приложение BUTTON...........................................................................207
Глобальные переменные............................................................................................212
Функиид main..............................................................................................................213
Функция окна WndProc.............................................................................................213
......................................................................................................214
.......................214
Функция main
Функция окна WndProc
Файл buuon.h 214
Файл buuon.rc
Файл buuon.def ............................................................................................................ 215
Переключатели 215
NTROL
216 217 21 S
ере
Сообщение WM_CONTROL
Определение состояния переключателя
Изменение состояния переключателя Приложение CHECK .............................................................................. 218
Глобальные переменные ............................................................................................ 225
Функция main .............................................................................................................. 225
Функция WndProc ....................................................................................................... 225

Цена: 75руб.

Назад

Заказ

На главную страницу

Hosted by uCoz