::Главная ->Литература ->Руководство по программированию в Windows | |
Содержание
::Новости::F.A.Q. ::Форум ::Компоненты ::Исходники ::Литература ::Рассылка ::Ссылки
Клуб
::Клуб программистов::Члены клуба ::off-форум ::off-чат
Работа
::Есть программисты::Есть вакансии ::Программы на заказ ::Готовые программы
Другое
::О сайте::Голосование ::Модератору |
001 РУКОВОДСТВО ПО ПРОГРАММИРОВАНИЮ В СРЕДЕ MICROSOFT WINDOWS ========================================================= СОДЕРЖАНИЕ: ГЛАВА 1. ОБЗОР СРЕДЫ Windows................................. 1.1. Сравнение Windows и DOS................................. 1.1.1. Интерфейс пользователя............................. 1.1.2. Ввод из очереди.................................... 1.1.3. Независимая от устройства графика.................. 1.1.4. Многозадачность.................................... 1.2. Программная модель Windows.............................. 1.2.1. Окна............................................... 1.2.2. Меню............................................... 1.2.3. Панели диалога..................................... 1.2.4. Цикл обработки сообщений........................... 1.3. Библиотеки Windows...................................... 1.4. Разработка прикладной программы для Windows............. 1.5. Инструментальные средства разработки прикладных.... программ................................................ 1.5.1. Компилятор С................................. 1.5.2. Компоновщик........................................ 1.5.3. Редакторы ресурсов................................. 1.5.4. Компилятор ресурсов................................ 1.5.5. Средства отладки и оптимизации..................... 1.5.6. Сопровождение программ............................. 1.6. Рекомендации для разработки прикладных программ......... 1.7. Заключение.............................................. ГЛАВА 2. ПРИКЛАДНАЯ ПРОГРАММА Generic........................ 2.1. Прикладная программа Generic............................ 2.2. Прикладная программа в среде Windows.................... 2.3. Функция WinMain......................................... 2.3.1. Типы данных и структуры Windows.................... 2.3.2. Дескрипторы........................................ 2.3.3. Управление экземплярами............................ 2.3.4. Регистрация класса окна............................ 2.3.5. Создание окна...................................... 2.3.6. Отображение и корректировка окна................... 2.3.7. Создание цикла обработки сообщений................. 2.3.8. Передача управления................................ 2.3.9. Завершение прикладной программы.................... 2.3.10. Функции инициализации.............................. 2.3.11. Командная строка прикладной программы.............. 2.4. Функция окна............................................ 2.5. Создание панели диалога About........................... 2.5.1. Создание шаблона панели диалога.................... 2.5.2. Создание включаемого файла......................... 2.5.3. Создание функции диалога........................... 2.5.4. Определение меню с элементом About................. 2.5.5. Обработка сообщения WM_COMMAND..................... 2.6. Создание файла определения модуля....................... . 002 2.7. Объединение компонент Generic........................... 2.7.1. Создание исходного файла на языке С................ 2.7.2. Создание включаемого файла......................... 2.7.3. Создание файла описания ресурсов................... 2.7.4. Создание файла определения модуля.................. 2.7.5. Создание файла make................................ 2.7.6. Запуск программы MAKE.............................. 2.8. Использование Generic как шаблона....................... 2.9. Заключение.............................................. ГЛАВА 3. ВЫВОД В ОКНО........................................ 3.1. Контекст отображения.................................... 3.1.1. Использование функции GetDC........................ 3.1.2. Сообщение WM_PAINT................................. 3.1.3. Перерисовка области пользователя................... 3.1.4. Контекст отображения и контекст устройства......... 3.1.5. Система координат.................................. 3.2. Создание, выборка и удаление средств рисования.......... 3.3. Рисование и вывод текста................................ 3.4. Пример прикладной программы Output...................... 3.4.1. Добавление новых переменных........................ 3.4.2. Модификация фрагмента WM_CREATE.................... 3.4.3. Добавление фрагмента WM_PAINT...................... 3.4.4. Модификация фрагмента WM_DESTROY................... 3.4.5. Трансляция и компоновка............................ 3.5. Заключение.............................................. ГЛАВА 4. ВВОД С ИСПОЛЬЗОВАНИЕМ МЫШИ И КЛАВИАТУРЫ............. 4.1. Типы вводимой информации................................ 4.1.1. Форматы сообщений.................................. 4.1.2. Ввод с клавиатуры.................................. 4.1.3. Ввод символа....................................... 4.1.4. Ввод с помощью "мыши".............................. 4.1.5. Ввод от таймера.................................... 4.1.6. Ввод из строки прокрутки........................... 4.1.7. Ввод из меню....................................... 4.2. Пример прикладной программы Input....................... 4.2.1. Как программа Input осуществляет вывод............. 4.2.2. Добавление новых переменных........................ 4.2.3. Установка типа класса окна......................... 4.2.4. Модификация функции CreateWindow................... 4.2.5. Определение прямоугольников для текста............. 4.2.6. Добавление элемента WM_CREATE...................... 4.2.7. Модификация фрагмента WM_DESTROY................... 4.2.8. Добавление фрагментов WM_KEYUP и WM_KEYDOWN........ 4.2.9. Добавление фрагмента WM_CHAR....................... 4.2.10. Добавление фрагмента WM_MOUSEMOVE.................. 4.2.11. Добавление фрагментов WM_LBUTTONUP и WM_LBUTTONDOWN 4.2.12. Добавление фрагмента WM_LBUTTONDBLCLK.............. 4.2.13. Добавление фрагмента WM_TIMER...................... . 003 4.2.14. Добавление фрагментов WM_HSCROLL и WM_VSCROLL...... 4.2.15. Добавление фрагмента WM_PAINT...................... 4.2.16. Трансляция и компоновка............................ 4.3. Заключение.............................................. ГЛАВА 5. ИКОНЫ............................................... 5.1. Что такое икона......................................... 5.1.1. Использование встроенных икон...................... 5.2. Использование собственных икон.......................... 5.2.1. Создание файла иконы............................... 5.2.2. Определение ресурса иконы.......................... 5.2.3. Загрузка ресурса иконы............................. 5.3. Иконы классов........................................... 5.4. Отображение собственных икон............................ 5.5. Использование икон в панели диалога..................... 5.6. Пример прикладной программы Icon........................ 5.6.1. Включение оператора ICON........................... 5.6.2. Включение управляющего оператора ICON.............. 5.6.3. Установка иконы класса............................. 5.6.4. Добавление MYICON.ICO в MAKE-файл.................. 5.6.5. Трансляция и компоновка............................ 5.7. Заключение.............................................. ГЛАВА 6. КУРСОР, МЫШЬ И КЛАВИАТУРА........................... 6.1. Управление формой курсора............................... 6.1.1. Использование встроенных курсоров.................. 6.1.2. Использование собственных курсоров................. 6.2. Отображение курсора..................................... 6.2.1. Курсор класса...................................... 6.2.2. Индицирование собственного курсора................. 6.2.3. Пример: Использование песочных часов при длительных операциях.......................................... 6.3. Выбор пользователем инофрмации с помощью мыши........... 6.3.1. Начало выборки графики............................. 6.3.2. Индицирование выборки.............................. 6.3.3. Окончание выборки.................................. 6.4. Использование курсора с клавиатурой..................... 6.4.1. Использование клавиатуры для перемещения курсора... 6.4.2. Использование курсора при отсутствии мыши.......... 6.5. Пример прикладной программы: Cursor..................... 6.5.1. Добавление оператора CURSOR........................ 6.5.2. Добавление новых переменных........................ 6.5.3. Установка курсора класса........................... 6.5.4. Подготовка курсора в виде песочных часов........... 6.5.5. Добавление длительной операции..................... 6.5.6. Добавление фрагментов WM_LBUTTONDOWN, WM_MOUSEMOVE 6.5.7. Добавление фрагмента WM_KEYDOWN и WM_KEYUP......... 6.5.9. Добавьте файл BULLSEYE.CUR к MAKE-файлу............ 6.5.10. Трансляция и компоновка............................ 6.6. Заключение.............................................. . 004 ГЛАВА 7. МЕНЮ............................................... 7.1. Что такое меню.......................................... 7.2. Определение меню........................................ 7.2.1. Идентификаторы меню................................ 7.3. Подключение меню к прикладной программе................. 7.3.1. Определение меню в качестве меню класса............ 7.3.2. Установка меню окна................................ 7.4. Обработка ввода от меню................................. 7.5. Работа с меню из прикладной программы................... 7.5.1. Доступные и недоступные элементы меню.............. 7.5.2. Контроль элементов меню............................ 7.5.3. Добавление элементов к меню........................ 7.5.4. Модификация существующего меню..................... 7.5.5. Удаление элемента меню............................. 7.5.6. Использование в качестве элементов меню растровых.. карт............................................... 7.5.7. Замена меню........................................ 7.5.8. Создание нового меню.............................. 7.5.9. Инициализация меню................................. 7.6. Специальные возможности меню............................ 7.6.1. Клавиши - ускорители............................... 7.6.2. Использование каскадных меню....................... 7.6.3. Использование плавающих накладываемых меню......... 7.6.4. Создание собственных контрольных отметок........... 7.6.5. Использование меню, рисуемых владельцем............ 7.7. Пример прикладной программы: EditMenu................... 7.7.1. Добавление новых меню к файлу описания ресуросов... 7.7.2. Добавление определений во включаемый файл.......... 7.7.3. Добавление к файлу описания ресурсов таблиц 7.7.4. Добавление новых переменных........................ 7.7.5. Загрузка таблицы ускорителей....................... 7.7.6. Модификация цикла обработки сообщений.............. 7.7.7. Модификация фрагмента WM_COMMAND................... 7.7.8. Компиляция и компоновка............................ 7.8. Заключение.............................................. ГЛАВА 8. БЛОКИ УПРАВЛЕНИЯ................................... 8.1. Что такое блок управления?.............................. 8.2. Создание блока управления............................... 8.2.1. Определение класса блока управления................ 8.2.2. Выбор типа блока управления........................ 8.2.3. Определение родительского окна..................... 8.2.4. Выбор идентификатора блока управления.............. 8.3. Использование блоков управления......................... 8.3.1. Получение ввода от пользователя.................... 8.3.2. Передача управляющих сообщений..................... 8.3.3. Как сделать блок управления доступным или.......... недоступным для ввода.............................. 8.3.4. Перемещение и изменение размера блока управления... . 005 8.3.5. Разрушение блока управления........................ 8.4. Создание и использование некоторых наиболее часто....... встречающихся блоков управления......................... 8.4.1. Использование клавишных блоков управления.......... 8.4.2. Использование статических блоков управления........ 8.4.3. Использование панелей перечней..................... 8.4.4. Комбинированные блоки управления................... 8.4.5. Редактируемые блоки................................ 8.4.6. Строки прокрутки................................... 8.5. Пример прикладной программы EditCntl.................... 8.5.1. Добавление константы во включаемый файл............ 8.5.2. Добавление новых переменных........................ 8.5.3. Добавление функции CreateWindow.................... 8.5.4. Модификация фрагмента WM_COMMAND................... 8.5.5. Добавление фрагмента WM_SETFOCUS................... 8.5.6. Добавление фрагмента WM_SIZE....................... 8.5.7. Трансляция и компоновка............................ 8.6. Заключение.............................................. ГЛАВА 9. ПАНЕЛЬ ДИАЛОГА...................................... 9.1. Что такое панель диалога................................ 9.1.1. Модальные панели диалога........................... 9.1.2. Немодальные панели диалога......................... 9.2. Использование панели диалога............................ 9.2.1. Создание функции панели диалога.................... 9.2.2. Использование блоков управления в панелях диалога.. 9.3. Пример прикладной программы FileOpen.................... 9.3.1. Добавление константы во включаемый файл............ 9.3.2. Создание шаблона панели диалога Open............... 9.3.3. Добавление новых переменных........................ 9.3.4. Добавление фрагмента IDM_OPEN...................... 9.3.5. Создание функции OpenDlg........................... 9.3.6. Добавление вспомогательных функций................. 9.3.7. Экспортирование функции диалога.................... 9.3.8. Трансляция и компоновка............................ 9.4. Заключение.............................................. ГЛАВА 10. ВВОД И ВЫВЛД ИЗ ФАЙЛОВ............................. 10.1. Правила работы с файлами в среде Windows............... 10.2. Создание файлов........................................ 10.3. Открытие существующих файлов........................... 10.4. Чтение и запись файлов................................. 10.5. Повторное открытие файлов.............................. 10.6. Запрос имени файла..................................... 10.7. Проверка состояния файла............................... 10.8. Простой редактор файлов EditFile....................... 10.8.1. Добавление констант во включаемый файл............ 10.8.2. Добавление панели диалога SaveAs.................. 10.8.3. Добавление операторов include..................... 10.8.4. Добавление новых переменных....................... . 006 10.8.5. Замена фрагмента WM_COMMAND....................... 10.8.6. Добавление фрагментов WM_QUERYENDSESSION и WM_CLOS 10.8.7. Модификация функции диалога OpenDlg............... 10.8.8. Добавление функции диалога SaveAsDlg.............. 10.8.9. Добавление вспомогательных функций................ 10.8.10. Экспорт функции диалога SaveAsDlg................ 10.8.11. Расширение динамической области памяти........... 10.8.12. Трансляция и компоновка.......................... 10.9. Заключение............................................. ГЛАВА 11. РАСТРОВЫЕ КАРТЫ.................................... 11.1. Что такое растровая карта.............................. 11.2. Создание растровых карт................................ 11.2.1. Создание и загрузка файлов растровых карт......... 11.2.2. Создание и заполнение пустых растровых карт....... 11.2.3. Создание растровых карт с помощью фиксированных... 11.2.4. Рисование цветных растровых карт.................. 11.3. Отображение растровых карт на экране................... 11.3.1. Индицирование растровой карты с помощью функци BitBlt............................................ 11.3.2. Растяжение растровых карт......................... 11.3.3. Использование растровых карт в кисти шаблона...... 11.3.4. Индицирование аппаратно независимых растровых карт 11.3.5. Использование растровой карты в качестве элемент меню.............................................. 11.4. Добавление цвета к монохромной растровой карте......... 11.5. Удаление растровых карт................................ 11.6. Пример прикладной программы Bitmap..................... 11.6.1. Модификация включаемого файла..................... 11.6.2. Добавление ресурсов растровой карты............... 11.6.3. Добавление меню Bitmap, Pattern и Mode............ 11.6.4. Добавление глобальных и локальных переменных...... 11.6.5. Добавление фрагмента WM_CREATE.................... 11.6.6. Модификация фрагмента WM_DESTROY.................. 11.6.7. Добавление фрагментов WM_LBUTTONUP, WM_MOUSEMOVE.. и WM_LBUTTONDOWN.................................. 11.6.8. Добавление фрагмента WM_RBUTTONUP................. 11.6.9. Добавление фрагмента WM_ERASEBKGND................ 11.6.10. Добавление фрагмента WM_COMMAND.................. 11.6.11. Модификация make-файла........................... 11.6.12. Трансляция и компоновка.......................... 11.7. Заключение............................................. ГЛАВА 12. ВЫВОД НА ПЕЧАТЬ.................................... 12.1. Печать в среде Windows................................. 12.1.1. Использование управляющих последовательностей..... 12.2. Получение информации о текущем принтере................ 12.3. Печать строки текста................................... 12.4. Печать растровой карты................................. 12.5. Обработка ошибок во время печати....................... . 007 12.6. Отмена операции печати................................. 12.6.1. Определение панели диалога........................ 12.6.2. Определение функции панели диалога................ 12.6.3. Функция прерывания печати......................... 12.6.4. Выполнение прерываемых операций печати............ 12.6.5. Отмена операции печати с помощью ABORTDOC......... 12.7. Печать порциями........................................ 12.8. Пример прикладной программы PrntFile................... 12.8.1. Добавление панели диалога AbortDlg............... 12.8.2. Добавление переменных для печати.................. 12.8.3. Добавление фрагмента IDM_PRINT.................... 12.8.4. Создание функций AbortDlg и AbortProc......... 12.8.5. Добавление функции GetPrinterDC................... 12.8.6. Экспортирование функции AbortDlg и AbortProc...... 12.6.7. Компиляция и компоновка........................... 12.9. Заключение............................................. ГЛАВА 13. СИСТЕМНЫЙ БУФЕР.................................... 13.1. Использование системного буфера........................ 13.1.1. Копирование текста в системный буфер.............. 13.1.2. Вставка текста из системного буфера............... 13.1.3. Вставка растровых карт из системного буфера....... 13.1.4. Инструментальная программа Clipboard.............. 13.2. Использование специальных возможностей системного.. буфера............................................... 13.2.1. Представление данных по запросу................... 13.2.2. Представление форматов перед завершением работы... 13.2.3. Регистрация собственных форматов.................. 13.2.4. Управление отображением данных Clipboard........ 13.3. Пример прикладной программы ClipText................... 13.3.1. Добавление новых переменных....................... 13.3.2. Модификация программы инициализации экземпляра.... 13.3.3. Добавление фрагмента WM_INITMENU.................. 13.3.4. Модификация фрагмента WM_COMMAND.................. 13.3.5. Добавление фрагмента WM_PAINT..................... 13.3.6. Добавление функции OutOfMemory.................... 13.3.7. Трансляция и компоновка........................... 13.4. Заключение............................................. ГЛАВА 14. ЯЗЫК С И ЯЗЫК АССЕМБЛЕРА............................ 14.1. Выбор модели памяти.................................... 14.2. Использование NULL..................................... 14.3. Использование аргументов командной строки и переменных среды DOS................................... 14.4. Написание экспортируемых функций....................... 14.4.1. Создание функции многократного вызова............. 14.4.2. Создание функции WinMain.......................... 14.5. Использование функций исполняющей системы С............ 14.5.1. Использование библиотек С......................... 14.5.2. Выделение памяти.................................. 14.5.3. Работа со строками................................ . 008 14.5.4. Использование функций файлового ввода/вывода ..... 14.5.5. Использование функций ввода и вывода на консоль... 14.5.6. Использование графических функций................. 14.5.7. Использование вычислений с плавающей точкой....... 14.5.8. Запуск других прикладных программ................. 14.5.9. Использование функций интерфейса с MS-DOS и BIOS.. 14.5.10. Исключение стартового кода С...................... 14.6. Написание программ на языке ассемблер.................. 14.6.1. Изменение состояния флага прерывания.............. 14.6.2. Как на ассемблере написать экспортируемую функцию. 14.6.3. Использование регистра ES......................... 14.7. Заключение............................................. ГЛАВА 15. УПРАВЛЕНИЕ ПАМЯТЬЮ................................ 15.1. Использование памяти................................... 15.1.1. Использование глобальной динамической области..... памяти............................................ 15.1.2. Использование локальной динамической области памят 15.1.3. Работа со сбрасываемой памятью.................... 15.2. Использование сегментов................................ 15.2.1. Использование кодовых сегментов................... 15.2.2. Сегменты данных................................... 15.3. Пример прикладной программы Memory..................... 15.3.1. Разделение исходного С-файла...................... 15.3.2. Модификация включаемого файла..................... 15.3.3. Добавление новых определений сегментов............ 15.3.4. Модификация файла make............................ 15.3.5. Трансляция и компоновка........................... 15.4. Заключение............................................. ГЛАВА 16. ЕЩЕ ОБ УПРАВЛЕНИИ ПАМЯТЬЮ.......................... 16.1. Конфигурации памяти Windows............................ 16.1.1. Базовая конфигурация памяти....................... 16.1.2. Конфигурация памяти EMS 4.0....................... 16.1.3. Стандартная конфигурация памяти Windows........... 16.1.4. Конфигурация памяти Windows в расширенном...... режиме............................................ 16.2. Использование памяти в прикладных программах Windows... 16.2.1. Управление автоматическими сегментами данных...... 16.2.2. Управление блоками локальной динамической област памяти............................................ 16.2.3. Управление блоками глоабльной динамической област памяти............................................ 16.2.4. Использование дополнительных байт Окна и класса... 16.2.5. Управление ресурсами.............................. 16.3. Использование моделей памяти........................... 16.4. Использование данных типа huge......................... 16.5. Чего следует избегать при работе с данными............. 16.6. Управление памятью для кода программы.................. 16.6.1. Использование атрибутов кодовых сегментов......... 16.6.2. Использование нескольких кодовых сегментов........ 16.6.3. Балансирование кодовых сегментов.................. . 009 16.6.4. Порядок кодовых сегментов в файле определени модуля прикладной программы (.DEF)................ 16.7. Заключение............................................. ГЛАВА 17. ПАРАМЕТРЫ ПРИНТЕРА................................ 17.1. Как Windows управляет параметрами принтеров............ 17.7.1. Параметры принтера и структура DEVMODE............ 17.1.2. Параметры принтера и среда принтера............... 17.2. Использование функций драйверов устройств.............. 17.3. Получение характеристик драйвера принтера.............. 17.4. Работа с параметрами принтера.......................... 17.4.1. Определение ввода и вывода функции ExtDeviceMode.. 17.4.2. Получение копии параметров принтера............... 17.4.3. Изменение параметров принтера..................... 17.4.4. Приспособление параметров принтера для......... использования с CreateDC.......................... 17.4.5. Изменение параметров принтера без влияния на...... другие прикладные программы....................... 17.4.6. Запрос у пользователя изменения параметров........ принтера.......................................... 17.5. Копирование параметров принтера между драйверами....... 17.6. Поддержка собственных параметров принтера.............. 17.7. Работа со старыми драйверами принтеров................. 17.8. Заключение............................................. ГЛАВА 18. ШРИФТЫ............................................ 18.1. Запись текста.......................................... 18.2. Использование цвета при записи текста.................. 18.3. Использование заказных шрифтов......................... 18.4. Создание логического шрифта............................ 18.5. Использование несколько шрифтов в одной строке......... 18.6. Получение информации о выбранном шрифте................ 18.7. Получение информации о логическом шрифте............... 18.8. Перечисление шрифтов................................... 18.9. Проверка текстовых возможностей устройства............. 18.10. Добавление ресурса шрифта............................. 18.11. Установка выравнивания текста......................... 18.12. Создание ресурса шрифта............................... 18.12.1. Создание файлов шрифтов.......................... 18.12.2. Создание описания ресурса шрифта................. 18.12.3. Создание шаблона программного модуля............. 18.12.4. Создание файла определения модуля................ 18.12.5. Трансляция и компоновка файла ресурса шрифта..... 18.13. Пример прикладной программы ShowFont.................. 18.14. Заключение............................................ ГЛАВА 19. ПАЛИТРЫ ЦВЕТОВ.................................... 19.1. Что делает палитра цветов.............................. 19.2. Как работают палитры цветов............................ . 010 19.3. Создание и использование логической палитры............ 19.3.1. Создание структуры данных LOGPALETTE.............. 19.3.2. Создание логической палитры....................... 19.3.3. Выбор палитры в контексте устройства.............. 19.3.4. Реализация палитры................................ 19.4. Рисование с использованием цветов палитры.............. 19.4.1. Прямое определение цветов таблицы................. 19.4.2. Непрямое определение цветов палитры............... 19.4.3. Использование палитры при выводе растровых карт... 19.5. Изменение логической палитры........................... 19.6. Реакция на изменения системной палитры................. 19.6.1. Обработка сообщения WM_QUERYNEWPALETTE............ 19.6.2. Реакция на сообщение WM_PALETTECHANGED............ 19.7. Заключение............................................. ГЛАВА 20. ДИНАМИЧЕСКИ ПОДКЛЮЧАЕМЫЕ БИБЛИОТЕКИ............... 20.1. Что такое DLL.......................................... 20.1.1. Импортируемые библиотеки и DLL.................... 20.1.2. Модули DLL и прикладной программы................. 20.1.3. DLL и задачи...................................... 20.1.4. DLL и стеки....................................... 20.1.5. Как Windows ищет DLL.............................. 20.2. Когда использовать собственные DLL..................... 20.2.1. Разделение между прикладными программами.......... 20.2.2. Модификация программ для различных рынков......... 20.2.3. Ловушки окон...................................... 20.2.4. Драйверы устройств................................ 20.2.5. Собственные блоки управления...................... 20.2.6. Управление проектами.............................. 20.3. Создание DLL........................................... 20.3.1. Создание файла с исходным кодом на С.............. 20.3.2. Создание файла определения модуля................. 20.3.3. Создание Make-файла............................... 20.4. Доступ к DLL из прикладных программ.................... 20.4.1. Создание прототипа библиотечных функций........... 20.4.2. Импортирование библиотечных функций............... 20.5. Правила владения для объектов Windows.................. 20.6. Пример библиотеки: Select.............................. 20.6.1. Создание функций.................................. 20.6.2. Создание функции инициализации.................... 20.6.3. Создание процедуры завершения..................... 20.6.4. Создание файла определения модуля................. 20.6.5. Создание включаемого файла........................ 20.6.6. Трансляция и компоновка........................... 20.7. Заключение............................................. ГЛАВА 21. ИНТЕРФЕЙС МНОЖЕСТВА ДОКУМЕНТОВ..................... 21.1. Структура прикладной программы, использующей MDI....... 21.2. Инициализация прикладной программы, использующей MDI... 21.2.1. Регистрация классов окон.......................... 21.2.2. Создание окон..................................... 21.3. Создание цикла обработки сообщений..................... . 011 21.4. Создание функции обработки сообщений окна фрейма....... 21.5. Создание функции обработки сообщений для дочернего.. окна MDI............................................... 21.6. Связывание данных с дочерними окнами................... 21.6.1. Хранение данных в структуре окна.................. 21.6.2. Использование свойств окна........................ 21.7. Управление дочерними окнами............................ 21.7.1. Создание дочерних окон............................ 21.7.2. Разрушение дочерних окон.......................... 21.7.3. Активизация и деактивизация дочерних окон......... 21.7.4. Расстановка дочерних окон на экране............... 21.8. Заключение............................................. ГЛАВА 22. ДИНАМИЧЕСКИЙ ОБМЕН ДАННЫМИ......................... 22.1. Обмен данными в Windows................................ 22.1.1. Передача данных через системный буфер............. 22.1.2. Динамически подключаемые библиотеки............... 22.1.3. Динамический обмен данными........................ 22.1.4. Когда использовать Windows DDE.................... 22.1.5. DDE с точки зрения пользователя................... 22.2. Концепции DDE.......................................... 22.2.1. Клиент, сервер и диалог........................... 22.2.2. Элемент, предмет, приложение...................... 22.2.3. Постоянная ("горячая" и "теплая") связь по данным. 22.3. Сообщения DDE.......................................... 22.4. Поток сообщений DDE.................................... 22.4.1. Инициализация диалога............................. 22.4.2. Передача одного элемента.......................... 22.4.3. Установление постоянной связи по данным........... 22.4.4. Запуск команд в удаленной прикладной программе.... 22.4.5. Завершение диалога................................ 22.5. Примеры программ Client и Server....................... 22.6. Заключение............................................. . 012 Введение. --------- Это введение содержит информацию, которую вы должны прочесть перед использованием данного руководства. В этой информации описаны следующие вещи: - Что вы должны знать перед началом работы; - Назначение и содержание данного руководства; - Средства, необходимые для создания прикладных программ, работающих в среде Windows 3.0; - Использование простой прикладной программы, описанной в данном руководстве; - Соглашения, используемые в руководстве; - Руководства, которые поставляются вместе с Microsoft Windows Software Development Kit (SDK). Что вы должны знать перед началом работы. ----------------------------------------- Для того, чтобы использовать данное руководство, вам необходимы: - Опыт использования Windows и понимание пользовательского интерфейса среды Windows. Перед началом разработки любой прикладной программы для работы в среде Windows вы должны установить на своем компьютере Windows версии 3.0 и научиться пользоваться ею. Убедитесь, что вы изучили названия, назначение и работу различных частей прикладных программ Windows (типа окон, блоков диалога, меню, блоков управления и строк прокрутки). Поскольку ваши прикладные программы для среды Windows будут включать эти элементы, важно, чтобы вы понимали их для того, чтобы правильно их реализовать. - Понимание стиля пользовательского интерфейса Windows. Цель Microsoft Windows 3.0 состоит в предоставлении уни- фицированного пользовательского интерфейса для всех прикладных программ. Это поможет пользователю уменьшить трудности, возникающие при изучении пользовательского интерфейса прикладных программ. Однако, для достижения этой цели вы должны следовать рекомендациям, изложенным в "System Application Architecture, Common User Access: Advance Interface User Guide". . 013 - Опыт написания программ на язике программирования С с использованием стандартных библиотечных функций С. Для разработки прикладных программ для среды Windows предпочтительнее использовать язык программирования С. Многие программные возможности Windows были разработаны для использования в программах на С. (Прикладные программы для Windows можно разрабатывать с использованием также языков Pascal и Assembler, однако эти языки предоставляют дополнительные сложности, которых не возникает при использовании С). Об этом руководстве. -------------------- Это руководство предназначено для того, чтобы помочь опытным программистам, владеющим языком программирования С, разрабатывать прикладные программы, которые используют интерфейс пользователя среды Windows 3.0. Документ содержит подробные пояснения как использовать функции, сообщения и структуры данных Windows для выполнения общих для всех прикладных прогррамм Windows задач. В руководстве содержатся также описания примеров прикладных программ, которые могут быть оттранслированы и запущены в работу вместе со средой Windows 3.0. Это руководство состоит из трех частей, каждая из которых содержит по несколько глав. Часть 1, "Введение в создание прикладных программ для Windows", предлагает обзор среды Windows и дает подробное описание простой прикладной программы. Часть 1 состоит из следующих глав: - Глава 1, "Обзор среды Windows", производит сравнение Windows со стандартным окружением С, предлагает короткий обзор Windows, а также описывает программную модель Windows и процесс создания прикладных программ для Windows. - Глава 2, "Прикладная программа Generic", показывает, как создать простую прикладную программу для Windows, которая называется Generic. Эту программу вы будете использовать в дальнейшем в качестве базовой для последующих примеров программ из данного руководства по обучению. Часть 2, "Создание прикладных программ для Windows", описывает основные задачи, которые встают при создании программ для Windows, такие как создание меню, печать и использование системного буфера. Каждая глава описывает определенный раздел и содержит пример программы на эту тему. Часть 2 состоит из следующих глав: . 014 - Глава 3, "Вывод в окно", вводит интерфейс графических устройств (GDI) и описывает использование средств GDI для вывода в окно. - Глава 4, "Ввод с использование мыши и клавиатуры", показывает как обрабатывать ввод от мыши и клавиатуры. - Глава 5, "Иконы", показывает как создать и отобразить икону для вашей прикладной программы. - Глава 6, "Курсор, мышь и клавиатура", описывает назначение курсора, мыши и клавиатуры и показывает, как их можно использовать в ваших прикладных программах. - Глава 7, "Меню", показывает, как в вашей прикладной программе создать меню и как обрабатывать ввод от меню. - Глава 8, "Блоки управления", описывает, как создать и использовать блоки управления, типа клавиш и панелей перечня. - Глава 9, "Блоки диалога", описывает, как создавать и использовать блоки диалога, и как заполнять их блоками управления. - Глава 10, "Ввод и вывод в файл", описывает функцию OpenFile и правила работы с файлами. - Глава 11, "Растровые карты", показывает, как создавать и отображать растровые карты. - Глава 12, "Печать", показывает, как использовать принтер при работе под Windows. - Глава 13, "Системный буфер", описывает системный буфер и показывает, как его использовать в ваших прикладных программах. Часть 3, "Более сложные разделы", показывает и описывает некоторые сложные разделы, вроде управления памятью или динамического обмена данными. Каждая глава описывает определенный раздел. Часть 3 состоит из следующих глав: - Глава 14, "Язык С и язык ассемблера", предлагает некоторые приемы написания прикладных программ для Windows с использованием языков и С и ассемблера. - Глава 15, "Управление памятью", показывает, как выделять глобальную и локальную память. - Глава 16, "Еще об управлении памятью", предлагает более детальное описание того, как прикладная программа может эффективно использовать память. В данной главе также . 015 описано как Windows управляет распределением памяти в различных конфигурациях. - Глава 17, "Параметры принтера", показывает, как приспосабливать параметры принтера (типа размеров и ориентации страниц) для нужд вашей прикладной программы. - Глава 18, "Шрифты", показывает, как создавать и загружать шрифты и как их затем использовать в функции TextOut. - Глава 19, "Цветовые палитры", показывает, как использовать палитры цветов Windows для более эффективной работы с цветами в вашей прикладной программе. - Глава 20, "Динамически подключаемые библиотеки", описывает, как создать и использовать динамически подключаемые библиотеки в Windows. - Глава 21, "Интерфейс множества документов", показывает, как создавать прикладные программы, которые используют интерфейс множества документов Windows (MDI), который позволяет пользователю работать одновременно с несколькими документами. - Глава 22, "Динамический обмен данными", описывает, как передавать данные от одной прикладной программы другой с помощью протокола Динамического Обмена Данными, базирующегося на передаче сообщений. Необходимый инструментарий. --------------------------- Для разработки большинства прикладных программ в среде Windows версии 3.0 необходим следующий инструментарий: - оптимизирующий компилятор с языка С:CL; - компоновщик:LINK; - компилятор ресурсов:RC; - редактор икон:SDKPAINT; - редактор диалога:DIALOG. Для создания библиотек Windows и файлов ресурса шрифта необходим следующий дополнительный инструментарий: - макроассемблер:MASW; - редактор шрифтов:FONTEDIT. . 016 При создании и отладке прикладных программ для среды Windows вам могут понадобиться следующие средства: - программное средство сопровождения проектов: MAKE; - символьный отладчик: SYMDEB; - CodeView для Windows: CVW; - профилер: PROFILER; - программа SWAP; - программа просмотра памяти: HEAPWALK; - программа отслеживания сообщений: SPY. Большая часть этого инструментария входит в состав Microsoft Windows Software Development Kit версии 3.0 (кроме компилятора С, макроассемблера, компоновщика и программы сопровождения проектов). Полностью состав инструментария приведен в "Tools". Список требований Windows 3.0 к программному и аппаратному обеспечению вы найдете в "Руководстве по установке". Примеры прикладных программ. ---------------------------- Примеры прикладных программ, рассматриваемые в данном документе, написаны на языке С и следуют рекомендованному для Windows стилю интерфейса пользователя. Исходные файлы всех примеров прикладных программ входят в состав программных средств SDK. Вы можете просматривать исходные тексты этих программ при чтении соответствующих разделов данного руководства. Для удобства поддиректории, содержацие соответствующие программы, названы в соответствии с главами. Эти примеры могут быть использованы пользователем как основа при разработке собственных программ. Специальные термины. Разработчик! Данное руководство написано для вас. Слово "вы" может указывать как вас, т.е. разработчика, так и вашу прикладную программу. Например: "Вы создаете иконы, курсоры и растровые карты с помощью редактора SDKPaint." "Вы можете вывести текст с помощью функции TextOut." "Ваша прикладная программа получает сообщение WM_PAINT, когда возникает необходимость в перерисовке области . 017 пользователя. В данном документе слово "пользователь" определяет не вас, разработчика прикладной программы, а того, кто будет использовать прикладную программу, которую вы написали: "Когда пользователь выбирает элемент меню About, ваша прикладная программа выводит панель диалога About". "Вы можете отобразить рядом с элементом меню пометку, которая говорит о том, что пользователь выбрал данный элемент. Соглашения, используемые в данном документе. -------------------------------------------- В данном документе "DOS" определяет как MS-DOS, так и PC-DOS, за исключением тех случаев, когда их возможности не соответствуют друг другу. В данном руководстве используются следующие соглашения: Соглашение Описание --------------------------------------------------------------- Жирный текст Жирные буквы выделяют специальные термины или знаки пунктуации, которые должны использоваться в том виде, в каком они приведены: Это ключевые слова или функции (типа EXETYPE или CreateWindow), команды DOS и ключи командной строки (типа /Zi). Вы должны вводить эти символы точно так, как они показаны. Однако использование больших и маленьких букв не всегда имеет значение. Например, вы можете вызвать компоновщик, набрав и LINK, и Link, и link в подсказке DOS. () В синтаксических операторах скобки заключа- ют один или более параметров, которые вы передаете функции. Курсив Курсив отмечает текст, который в данном мес- те вы замените на свой параметр. Например, в нижеприведенном тексте вы должны заменить параметры X и Y действительными координатами: SetCursorPos(X,Y) Непропорциональный Тексты примеров программ выводятся непропор- шрифт циональным шрифтом. BEGIN Вертикальный эллипсис в примерах программ . отмечает часть текста, которая опущена. . . 018 . END ... Эллипсис, следующий за элементом, говорит о том, что могут быть указаны еще элементы, имеющие ту же форму. В приведенном ниже примере, горизонтальный эллипсис показывает, что вы можете указать больше, чем один breakadress в команде g. g [=startadress] [breakadress]... [] Квадратные скобки заключают необязательные поля или параметры в командных строках или в синтаксических операторах. В примере параметры команды RC option и executable-file являются необязательными. RC [option] filename [executable-file] | Вертикальная черта определяет, что вы може- те ввести один из элементов, указанных с обеих сторон черты. Следующий пример иллюстрирует использование вертикальной черты: DB [adress | range] Вертикальная черта определяет, что вслед за командой DB (Dump Bytes) вы должны указать или adress или range. "" Кавычки показывают термин, определяемый в тексте. { } Фигурные скобки указывают, что вы можете указать один из элементов, заключенных в них. МАЛЕНЬКИЕ ЗАГЛАВНЫЕ Маленькие заглавные символы определяют имена СИМВОЛЫ клавиш или комбинаций клавиш. Например: ALT+SPACEBAR Набор документации по Microsoft Windows Software Development Kit. В данной документации термин SDK определяет Microsoft Windows Software Development Kit и его содержимое. SDK включает следующие руководства: Заглавие Содержимое --------------------------------------------------------------- . 019 Руководство по ус- Предоставляет информащию, позволяющую тановке и изменения ориентироваться в SDK. Описывает, как уста- новить SDK, и показывает изменения в версии 3.0 Руководство Описывает, как писать прикладные программы программиста для среды Windows, содержит простую прик- ладную программу, которую вы можете использовать в качестве маски при создании своих программ. Описаны также некоторые сложные разделы программирования под Windows. Tools Описывает инструментальные средства для разработки программ, которые необходимы для создания прикладных программ для Windows, такие как отладчики и редакторы ресурсов. Справочное Это подробное руководство по всем деталям руководство интерфейса прикладных программ (API) Microsoft Windows. В нем содержится список всех функций, сообщений и структур данных (в алфавитном порядке) API, и предлагается порядок их испльзования. System Application Предоставляет рекомендации по написанию Architecture, программ, которые могут работать вместе Common User Access: с другими программами под Windows. Advanced Interface Design Guide ЧАСТЬ 1. ВВЕДЕНИЕ В СОЗДАНИЕ ПРИКЛАДНЫХ ПРОГРАММ ДЛЯ WINDOWS. ---------------------------------------------------- Хотя прикладные программы для Windows обычно пишут на языке С, эти прикладные программы во многом отличаются от стандартных программ на С. Это происходит потому, что они могут работать только в среде Windows, эти прикладные программы должны быть совместимы с Windows и с другими прикладными программами, они должны по возможности передавать управление Windows, и должны разделять системные ресурсы с Windows и с другими прикладными программами. Часть первая вводит вас в среду Windows и производит сравнение со стандартным окружением, в котором обычно работают С-программы. В ней также описана основная структура прикладной программы под Windows, и приводится пример простой программы, который иллюстрирует эту структуру. Прочитав главы из первой части вы получите основное представление о среде Windows и о структуре прикладных . 020 программ, работающих под Windows. |
::Главная ->Литература ->Руководство по программированию в Windows | |
(c) 2000 by AlmigoR
|