Майкл Дж. Янг Visual C++ 6. Полное руководство: В 2 т. (Том 1) Книга является полным руководством по системе программиро...
28 downloads
961 Views
37MB Size
Report
This content was uploaded by our users and we assume good faith they have the permission to share this book. If you own the copyright to this book and it is wrongfully on our website, we offer a simple DMCA procedure to remove your content from our site. Start by pressing the button below!
Report copyright / DMCA form
Майкл Дж. Янг Visual C++ 6. Полное руководство: В 2 т. (Том 1) Книга является полным руководством по системе программирования Visual C++ 6. Наряду с общим представлением об этом программном продукте, вы ознакомитесь с его новыми компонентами. Большое внимание уделяется программированию графического интерфейса с помощью библиотеки MFC. Рассмотрено использование механизма OLE, a также создание и применение элементов ActiveX. Для программистов любого уровня — как начинающих, так и опытных, которые хотят ознакомиться с особенностями программирования для Windows. Структура книги Том 1 Глава 13. Прокрутка и 343 Содержание 7 разделение окон представления Глава 14. Перемещаемые панели 487 Введение 13 инструментов и строки Часть I. Введение в Microsoft 17 состояния Visual C++ 6 Глава 15. Создание диалоговых 435 Глава 1. Установка 18 окон программного обеспечения Предметный указатель 521 Глава 2. Создание программ в 26 Том 2 среде Developer Studio Содержание 7 Часть II. Введение в C++ 49 Часть III. Программирование 11 Глава 3. Переходим к языку C++ 50 графического интерфейса с Глава 4. Определение классов 80 использованием библиотеки C++ MFC (окончание) Глава 5. Производные классы 105 Глава 16. Разработка диалоговых 12 C++ приложений Глава 6. Перегрузка, 124 Глава 17. Создание 56 копирование и преобразование многодокументных приложений Глава 7. Использование 146 Глава 18. Ввод/вывод символов 86 шаблонов языка C++ Глава 19. Использование 165 Глава 8. Обработка 158 исключительных ситуаций в C++ функций рисования Глава 20. Использование 271 Часть III. Программирование 177 растровых изображений и графического интерфейса с использованием библиотеки битовых операций Глава 21. Печать и 307 MFC предварительный просмотр Глава 9. Создание программ с 178 Глава 22. Использование 361 графическим интерфейсом множественных потоков Глава 10. Реализация 216 представления Глава 23. Связи между 396 процессами Глава 11. Реализация документа 269 Глава 24. Использование 425 Глава 12. Хранение документов 299
механизма OLE Приложение. Использование CD Глава 25. Создание и применение 498 Предметный указатель элементов ActiveX Содержание Введение 13 Преобразование программ, написанных на языке С, в Часть I. Введение в Microsoft 17 программы на C++ Visual C++ 6 Глава 1. Установка 18 Новые средства языка C++ программного обеспечения Комментарии Установка Microsoft Visual C++ 6 18 Операторы объявления Установка справочной 21 переменных системы Visual C++ Операция расширения области Что входит в пакет Visual C++ 6 21 видимости Встроенные функции Компонент VC++ Developer 21 Стандартные параметры Studio Компонент VC++ Runtime 21 функции Ссылки Libraries Константы Компонент VC++ MFC and 22 Перегруженные функции Template Libraries Компонент VC++ Build Tools 22 Операторы new и delete Итоги Компонент ActiveX 23 Глава 4. Определение классов Компонент Data Access 23 C++ Компонент Enterprise Tools 23 Компонент Graphics 23 Определение класса Создание экземпляра класса Компонент Tools 24 Доступ к членам класса Использование прилагаемого 24 Инкапсуляция компакт-диска Итоги 25 Преимущества инкапсуляции Конструкторы и деструкторы Глава 2. Создание программ в 26 Конструкторы среде Developer Studio Деструкторы Создание проекта 26 Создание и редактирование 31 Когда вызываются конструкторы и исходного файла программы деструкторы Использование вкладок 36 FileView и ClassView Встроенные функции-члены Организация исходных файлов Доступ к справочной системе 37 Указатель this Изменение установок проекта 38 Статические члены класса Построение программы 40 Выполнение программы 42 Итоги Глава 5. Производные классы Отладка программы 43 C++ Итоги 47 Производные классы Часть II. Введение в C++ 49 Конструкторы производных Глава 3. Переходим к языку C++ 50
542 544 50 55 55 55 58 59 61 62 67 73 75 78 80 80 81 82 84 87 87 87 94 95 96 98 99 101 103 105 105 107
классов Доступ к наследуемым переменным Создание иерархии классов Преимущества наследования Просмотр иерархии классов с помощью вкладки Class View Применение виртуальных функций Применение виртуальных функций для управления объектами классов Применение виртуальных функции для модификации базовых классов Итоги Глава 6. Перегрузка, копирование и преобразование Перегрузка операторов Определение дополнительных функций-операторов Общие принципы перегрузки операторов Перегрузка оператора присваивания Применение конструкторов копирования и преобразования Конструкторы копирования Конструкторы преобразования Инициализация массивов Итоги Глава 7. Использование шаблонов языка C++ Определение шаблонов функций Переопределение шаблонов Определение шаблонов классов Создание объектов по шаблонам Включение конструкторов в шаблон функции Итоги Глава 8. Обработка
108 111 113 113 115 119 120 122 124 124 127 130 131 135 136 138 143 144 146 146 149 150 152 154 156 158
исключительных ситуаций в C++ Обработка программных исключений Программирование блоков Catch Размещение обработчиков исключений Обработчики вложенных исключений Обработка исключений Win32 Итоги Часть III. Программирование графического интерфейса с использованием библиотеки MFC Глава 9. Создание программ с графическим интерфейсом Программирование графического интерфейса Создание и построение программы Генерация исходного кода Изменение исходного кода Построение и запуск программ Классы и файлы программы Как работает программа Поток выполнения программы Функция I nit Instance Завершение функции lnitlnstance Исключения в библиотеке MFC Итоги Глава 10. Реализация представления Программа MiniDraw Генерация исходных файлов Определение и инициализация переменных класса представления Добавление обработчиков сообщений Схема сообщений
158 163 164 167 169 175 177
178 178 179 180 186 189 191 207 207 210 212 213 214 216 216 217 219 220 225
Отображение песочных часов Параметры сообщений мыши Проектирование ресурсов программы Настройка окна Mini Draw Код мастера Исходный текст программы MiniDraw Программа MiniEdit Создание программы MiniEdit Исходный текст программы MiniEdit Итоги Глава 11. Реализация документа Сохранение графических данных Перерисовка окна Добавление команд в меню Удаление данных документа Реализация команд меню Обработка команды Delete All Инициализация команд меню Обработка команды Undo Текст программы MiniDraw Итоги Глава 12. Хранение документов Добавление средств вводавывода в программу MiniDraw Добавление команд в меню File Поддержка команд меню File Исходный текст программы MiniDraw Добавление средств вводавывода в программу MiniEdit Определение ресурсов Добавление кода поддержки Исходный текст программы MiniEdit Другие способы ввода-вывода файлов Итоги Глава 13. Прокрутка и разделение окон представления
227 229 230 233 234 235 250 251 255 268 269 270 273 274 275 277 277 279 280 281 297 299 299 299 301 309 324 325 326 328 340 341 343
Добавление средств прокрутки окна Преобразование координат Ограничение размера рисунка Добавление средств разделения окна Добавление средств разделения в новое приложение Обновление окна представления Эффективная перерисовка Текст программы MiniDraw Итоги Глава 14. Перемещаемые панели и строки состояния Добавление в новую программу перемещаемой панели и строки состояния Добавление перемещаемой панели инструментов в программу MiniDraw Определение ресурсов Изменение текста программы Добавление строки состояния в программу MiniDraw Завершение создания меню View и построение программы Текст программы MiniDraw Итоги Глава 15. Создание диалоговых окон Создание модальных диалоговых окон Создание программы Проектирование диалогового окна Format Создание класса для управления диалоговым окном Определение переменныхчленов класса Определение обработчиков
343 345 349 356 359 359 361 366 385 387 388 391 391 397 406 409 410 433 435 435 437 437 444 446 448
сообщений Создание диалоговых окон с 489 Управление диалоговым 451 вкладками окном класса CFormat Исходный текст программы 497 Отображение диалогового 461 TabDemo окна Диалоговые окна общего 519 Изменение заголовка 467 назначения программы Итоги 519 Исходный текст программы 467 Предметный указатель 521 FontDemo Создание немодальных 488 диалоговых окон Предметный указатель Спецсимвол {} (фигурные скобки) в массиве 143 ~ (тильда) в деструкторе 93 — (знак "минус") в операции + (знак "плюс") в операции перегрузки 130 & (символ амперсанта) в перегрузки 124—130, 140—141 << в операциях вставки 306 — ссылках 62—63 << при сериализации 306 — пунктах меню 252 <> (угловые скобки) в шаблонах — элементах управления диалогового окна 441, 444 — класса 151—152 — функции 147—148 (() [] <>) скобки для >> 306 — массивов 76, 96, 143 А — шаблонов классов 151—152 — шаблонов функции 147—148 АРI (интерфейс приложения) 178 D () (круглые скобки) в Developer Studio — конструкторе 89 —диалоговые окна 432, 488 — операторе catch 159 — списке инициализации элементов — запуск 26—27 — индикатор строки состояния 408 90 — комбинации клавиш 253—254 — (звездочки) в операторе — мастер AppWizard 180 перегрузки 130 (операция точка) для доступа к — панели инструментов 390—397 — представление и управление переменным класса 83 классами 113—115 (многоточие) в операторе catch 161, 170 — ресурсы 231—233 — создании исходных файлов 31—37 / (наклонная черта вправо) в — создание проекта 26—30, 42—43 операции перегрузки 130 — таблицы 301 : (двоеточия) в операции расширения области видимости 58 — установки 39—41 inline—функции отличие от макросов : (двоеточия) в списке 60 инициализации элементов 90 M [] (квадратные скобки) и массиве 76, MFC—классы 96
— координаты функции LineTo 345 — функция AfxGetApp 219—220 — функция AfxRegisterWndClass 234—235 —функция MoveTo 345 S SDI—приложения 181, 190 V Visual C++, инсталляция 18—20 W Win32 168—174 — исключения 168—174 — отладочная конфигурация 43 А Адресация памяти, простая модель 28 Б Базовые классы 105, 107, 111—112 Бегунок 344 Библиотеки — iostream 36, 112 — MFC 22—23 211—213 — иерархия классов 112—113 — исключения 211—213 — классы, диалоговые окна 457— 458 — приложения с графическим интерфейсом 178—179 — элементы управления 452—454 — классов 112—113 — периода выполнения 22 — статически связанные 183 — шаблонов ATL 22—23 Битовые маски МК_ 230—231 Блок — catch 159—164 — исключения 163—164 —try 159—162, 165 — данных — чтение и запись 327, 340 — чтение 327, 340—341 — инициализации, размещение 77 — запись 328, 340—341
Блоки, распределение памяти 75—77 В Ввод, пользовательский 441 Ввод—вывод — файла — низкий уровень 340—348 — поток 341 — буфер 37 Вешка разбивки 356—357 Виртуальные функции 115—118 — адрес 118 — переопределение 121, 275—277 — полиморфизм 118 — таблицы адресов 118 — члены класса 115—121 Вкладка — Build 41 — С/С ++ 40 — ClassView 30, 38, 113—115 — Contents 23, 38 — Document Template Strings 301 — Files 31—32 — File View и ClassView в Developer Studio 37—38 — FileView 30, 32, 37—38, 44 — General, диалоговые окна 440, 491—492 — General, установки проекта 42 — Member Variables 446, 448 — Message Maps 222, 276, 400 — More Styles 491 — Projects 27—28 —Projects 43, 180—181, 218 — Styles 441 — Styles, диалоговые окна 491 — Styles, поля со списками 441 — Window Styles 358 — Workspaces 31 Выделение памяти 75—76 Г Глобальные переменные — в параметрах функции по умолчанию 61
— со ссылочными типами 68 Горячая точка 23 i — крестообразный указатель 231 — курсор—стрелка 231 Графический редактор, значки 232— 233 Групповые блоки, свойства 439—440 Д Данные документа — запись 303—306 — перетаскивание и отпускание 308—309 Деструктор 94—95 — вызов 95—96 — класс 94—95 — переадресация 89 — шаблон функции 155 Диалоговое окно 435—437 — Accel Properties 254 — Active Project Configuration 41 — Add Member Function 277, 450 — Add Member Variable 446—448, 452 — Adding a Class 445, 492 — Advanced.options 301 — Advanced.options 358 — ClassWizard 235, 445—448 — Combo Box Properties 441 — Format 436—437 — с вкладками 490—497 — добавление элементов управления 440—441 — отображение 462—467 — ресурсы 461—462 — создание 437—445 — табуляция 443—445 — элемент управления 437—445 — элементы управления 441 — элементы управления 446—448 — Menu Item Properties 252, 275, 299—300, 394 — MFCAppWizard — Step 1 180— 181
— MFC AppWizard — Step 2 181— 182 — MFC AppWizard — Step 3 182— 183 — MFC AppWizard — Step 4 183— 184, 388 — MFC AppWizard — Step 5 183 — MFC AppWizard — Step 6 184, 251—252 — New 27—28, 31, 180—181, 218 — New Class 445—446, 492 — New Project Information 29—30, 185 — New Resource 437 — Open 190 — расширения по умолчанию 301 — Open Workspace 31, 39 — Project Settings 39—42, 60, 159 — Properties Dialog 440—441, 491— 492 — Resource Insert 437 — Save As 190,302—303 — расширения по умолчанию 301 — Set Active Project Configuration 43 — String Properties 301 — System Menu 441 — Toolbar Button Properties 393 — Toolbar Properties 392 — Visual Studio 6 0 Enterprise — Custom 18—19 — Visual Studio 6 0 Enterprise — Microsoft Visual C++ 6 0 20—21 — Win32 Console Application 29 — MFC—функции 457—458 — закрашивание 459—460 — закрытие 458, 460, 489 — изменение текста 519 — модальное 436—437 — немодальное 488—489 — обновление 459—460 — общее 519 — объект контекста устройства 460 — перекрашивание 459—460
— перерисовка 459—460 — размещение 451 — редактор 437—438, 491—492 — ресурсы 461—462 — с вкладками 490—497 — размер 493 — создание 437—445 — сообщения и обработчики сообщений 221—222, 449—450, 460 — строки 387, 432 — текст 467 — управление 457 — цвет фона 467 Диапазоны контролируемых значений 447 Динамически связываемые библиотеки DLL 180, 183 Динамические объекты памяти 75 Динамическое связывание 118 Директива препроцессора #define 60, 67—68 Документ, чтение данных 303—306 Дружественные классы 110, 131, 133 3 Закладки 35 Закрашивание 235, 273—274 Защищенные разделы кода 159 Значок — отображение 235 — редактирование 232—233 — удаление 231—232 И Идентификатор — AFX_IDS_DLEMESSAGE 409 — ID_APP_EXIT 461 — ID_EDIT_CLEAR_ALL 275, 277 — ID_EDIT_FIND 252 — ID_EDIT_REPEAT 252 — ID_EDIT_REPLACE 252 — ID_EDIT_SELECT_ALL 252 — ID_EDIT_UNDO 275, 280—281 — ID_ FILE_MRU_FILE1 300, 325 — ID_FILE_NEW 325
— ID_FILE_OPEN 300, 325 — ID_FILE_PRINT 252 — ID_FILE_SAVE 300, 325 — ID_FILE_SAVE_AS 300, 325 — ID_INDICATOR_CAPS 407 — ID_NDICATOR_NUM 407 — ID_INDICATOR__SCRL 407 — ID_LINE_DOUBLE 396,400—401 — ID_LINE_SINGLE 396,400 — ID_LINE_TRIPLE 396, 400 — ID_SEPARATOR 407 — ID_TEXT_FORMAT 461—462 — ID_TOOLS_CIRCLE 395, 401 — lD_TOOLS_CIRCLEFILL 395, 401 — ID_TOOLS_LINE 393, 395, 401 — ID_TOOLS_RECTANGLE 395, 401 — ID__TOOLS_RECTFILL 395, 401 — ID_TOOLS_RECTROUND 395,401 — ID_TOOLS_RECTROUNDFILL 395, 401 — ID_VIEW_ TOOLBAR 397, 409 — IDC_BOLD 439,492—493 — IDC_CENTER 439—440, 450, 492—493 — IDC_CROSS 219—220 — IDC_FIXED 439—440, 450, 492— 493 — IDC_ITALIC 439, 492—493 — IDC_LEFT 439—440, 492—493 — IDC_ RIGHT 439—440, 492—493 — IDC_SAMPLE 439—440 — IDC_SPACING 439—440, 492 — IDC_STATIC 439—441, 492—493 — IDC_UNDERLINE 439, 492—493 — IDC_VARIABLE 439—440, 492— 493 — IDCANCEL 439—440, 460, 465 — IDD_DIALOG1 439, 445 — IDOK 440, 460, 465 — IDR_MAINFRAME 231—232 254, 275, 299, 301, 392 — IDR_TOOLBAR1 392 — выравнивания
— по левому краю 440 — по правому краю 440 — по центру 440 — по ширине 439—440 — горячей клавиши 281 — для крута и прямоугольника 400 — курсивного стиля 439 — курсора 219—220 — линии 396, 400—401 — двойной толщины 396, 400— 401 — полужирного стиля 439 — стиля с подчеркиванием 439 — толщины линий 396, 400—401 — указателя—стрелки 220 — ширины символа 440 Изображение, размер 392—393 Имена файлов — по умолчанию 302 — буфер 303 Индикатор клавиши — Caps Lock 390, 407, 409 — Num Lock 390, 407, 410 — Scroll Lock 390, 407, 410 Индикаторы 409 — строки состояния 389—390 407— 409 Инициализация 208—211 Инкапсуляция 84—87 — ошибки 86—87 Инструмент для — закругленного прямоугольника 395 — залитого круга и прямоугольника 391, 395 — линии 395 — прямоугольника 395 — толщины линий 395 — эллипса 395 — круга 391, 395 Интерфейс приложения (API) 178 Исключения 158—162, 211—213 — структурированные 168—174
— MFC, блок catch 211—213 — MFC, блок try 211—213 — Win32, блок catch 170—172 — Win32, блок try 170—172 — возбуждение 158 — завершение после обработки 163 — нарушение доступа 173 — обработка 159 — обработчики 167—168 — стеки 165—167 — трансляция 171 — целочисленное деление на нуль 173 Исходные файлы 187 — на прилагаемом компдкт—диске 24—25 — ввод—вывод 36—37 — вставка 33 — организация 97—98 — поиск 35 — прокрутка 33 — редактирование 31—37, 186—189 — табуляция 34 — удаление данных 34 — хранение 36 К Каталог проекта 24—25, 193 Кисть 235 Клавиша — Alt, для — статических элементов управления 444 — текста 441 — элементов управления 441, 444 — отладки 43 — редактирования исходных файлов 33—35 — Del 34 — End, для редактирования исходных файлов 34 — Home, для редактирования исходных файлов 34 — Ins 34
— PgUp или PgDn, для редактирования исходных файлов 34 — Shift, для — отладки 43 — редактирования исходных файлов 33—35 — Tab, для — редактирования исходных файлов 34 — элементов управления 441, 443—445 — возврата, для редактирования исходных файлов 34 — функциональная 43 Класс — CAboutDlg 197—198 — CAnimateCtrl 453 — CArchive 304, 306, 327, 340 — функция GetFile 340 — функция IsStoring 304 — функция Read 327 340 — функция Seek 340 — функция Write 328, 340 — CBitmapButton 453 — CBlock 109—110 — рисование 109 — функция SetColor 109 — CButton 453 — функция SetCheck 453 — CCheckListBox 453 — CCmdTarget 222 — функция BeginWaitCursor 227 — функция EndWaitCursor 227 — CCmdUI —для меню 279 — для панелей инструментов 404—406 — функция Enable 279, 405, 408 — функция SetCheck 279, 404— 406 — функция SetRadio 279 405—406
— функция SetText 279, 405—406, 408 — CColorDialog 519 — CComboBox 453 — CComboBoxEx 453 — CControlBar 387, 398 — функция EnableDocking 399— 400 — CCtrlView 251 — CCurrency 124—132, 138—144 — функция GetAmount 142 — функция PrintAmount 142 — функция SetAmoimt 142 — CDaoRecordView 251 — CDateTimeCtrl 453 — CDC 188—189 — функция DPtoLP 345, 355 — функция DrawText 189 — функция GetClipBox 365 — функция LineTo 226, 271 — функция LPtoDP 352, 364 — функция MoveTo 226, 271 — функция SetROP2 227—228 — функция SetTextColor 467 — функция TextOut 460 — CDialog 445, 457, 488—489 — функция Create 489 — функции DoModal 445, 465 — функция EndDialog 458, 460, 489 — функция GetDeflD 458 — функция GotoDlgCtrl 458 — функция MapDialogRect 458 — функция NextDlgCtrl 458 — функция OnCancel 461 — функция OnOK 242, 288 — функция PrevDIgCtrl 458 — функция SetDeflD 458 — функция CDialogBar 432 — CDocument 186, 191—192,302 — функция DeleteContents 278 — функция DeleteContents 306, 325—327
— функция GetFirstViewPosition 326 — функция GetNextView 326—327 — функция OnFileSave 302 — функция OnFileSaveAs 302 — функция SetModifiedFlag 307 — функция UpdateAllViews 279, 281 — функция UpdateAllViews 359— 360, 365 — функция UpdateAllViews 362— 363 — функция UpdateAllViews 465 — CDragListBox 453 — CEdit 447, 453 — переменная m_SpacingEdit 452 — функция LimitText 452 — CEditView 250—251 — буфер 327 — прокрутка 343 — функция SerializeRaw 328 — CException 211—213 — CFile 212, 340 — CFileDialog 519 — CFind Replace Dialog 519 — CFontDemoApp 467—471 — функция Initlnstance 470—471 — CFontDemoDoc 463—466, 471— 475 — функция OnTextFormat 464— 465, 474—475 — CFontDemo View 465—467, 478— 482 — функция OnDraw 465—467, 480—482 497 — CFontDialog 519 — CFormat — переменная — m_Bold 446—447, 454—455, 459 — m_Italic 455, 459, 463—464 — m_Justify 447 456, 459, 463— 464
— m_Pitch 447, 456, 459, 463— 464 — m_RectSample 451 — m_Spacing 447, 459, 463— 464 — m_UnderIine 447, 455, 459, 463—464 — m_Italic 447 — функция OnBold 450, 454—455, 487 — функция OnCenter 450, 455, 487 — функция OnChangeSpacing 450, 458, 488—489 — функция OnFixed 450, 456 487 — функция OnInitDialog 451—453, 485 — функция Onltalic 450, 455, 487 — функция OnLeft 450, 456, 487— 488 — функция OnOK 200 — функция OnPaint 450, 455, 459— 460, 485—487 — функция OnRight 450, 456 — функция OnUnderline 450, 455, 488 — функция OnVariable 450, 457 — экземпляр 465 — CFormView 453 — CFrameWnd 191—192, 398, 406 — функция DockControlBar 399— 400 — функция OnBarCheck 406, 410 — функция ShowControlBar 406 — CHeaderCtrl 453 — CHotKeyCtrl 453 — CHtmlView 251 — CIPAddressControl 453 — CJustify 493, 513—514 — ClientDC 352, 355, 364 — CLine — ввод—вывод файла 304—306, 314 — разделение окон 361—362
— рисование 271, 274, 289, 305 — сохранение документа 270—272 — функция GetDirnRect 365 — панели инструментов 422 — функция GetDirnRect, рисование 361—362, 364 — функция Serialize 306, 315—317 — CListBox 453 — CListCtrl 453 — CListView 251 — CMainFrame — функция OnCreate 397—399, 408—409, 426—427 — функция OnCreateClient 358, 378 — CMemFile 341 — CMessage 132—143 — функция Display 142 — функция Set 142 — CMiniDrawApp — ввод—вывод файлов 309—313 — панели инструментов 400—406, 410—418 — панели инструментов 410—418 — переменная m_CurrentThickness 401—402 — переменная m_CurrentThickness 404 — переменная m_CurrentTool 401—402 — переменная m_LineThickness 405 — представление 219, 236—240 — разделение окон 366—370 — сохранение документа 283—285 — функция Initlnstance 283—284 — ввод—вывод файла 308— 312 — панели инструментов 413— 414 — представление 238—239 — прокрутка и разделение 368—369
— функция OnLineDouble 400— 401, 405, 415 — функция OnLineSingle 401, 405 416 — функция OnLineTriple 401, 405, 416 — функция OnToolsLine 401 416 — функция OnToolsCircle 401, 416 — функция OnToolsCirclefill 401, 416 — функция OnToolsRectangle 401, 416 — функция OnToolsRectfill 401, 416 — функция OnToolsRectround 401, 417 — функция OnToolsRectroundfiIl 401, 417 — функция OnUpdateLineDouble 400—401 405, 415 — функция OnUpdateLineSingle 400—401, 405, 416 — функция OnUpdateLineTriple 401 405, 416 — функция OnUpdateToolsLine 401, 416 — функция OnUpdateToolsCircle 401, 416 — функция On UpdateToolsCirclefill 401, 416 — функция OnUpdateToolsRectangle 401, 416 — функция OnUpdateToolsRectfill 401, 416 — функция OnUpdateToolsRectround 401 417 — функция OnUpdateToolsRectroundfill 401, 404, 417 — CMiniDrawDoc — функция OnUpdateEditClearAll, панели инструментов 422
— функция OnUpdateEditClearAll, представление 375 — функция AddLine — панели инструментов 422 — представление 362—363, 375 — сохранение документа 270— 273, 289, 307 — ввод—вывод файлов 302—303, 314—318 — измененный флаг, ввод—вывод файла 306—308 — панели инструментов 417—423 — перетаскивание и отпускание 308—309 — представление 240—243 — разделение окон 370—375 — сериализация 303—306 — сохранение документа 287—290 — функция AddLine, ввод—вывод файлов 317 — функция DeleteContents 275— 277, 289, 317 422 — функция GetLine — ввод—вывод файлов 317 — панели инструментов 422 — представление 375 — сохранение документа 271— 274, 289 — функция GetNumLines — ввод—вывод файлов 317 — панели инструментов 422 — сохранение документа 271— 272, 289 — функция OnEditClearAll 278— 279 — ввод—вывод файлов 307, 317—318 — панели инструментов 422— 423 — представление 375 — сохранение документа 289— 290 — функция OnEditUndo 280—281
— ввод—вывод файлов 318 — панели инструментов 422 — представление 375 — сохранение документа 289 307 — функция OnNewDocument 242, 288 — функция OnUpdateEditClearAll 279, 289 — ввод—вывод файла 318 — функция OnUpdaieEditUndo 281, 289 318 375 — функция Serialize 243 288 — ввод—вывод файла 302— 306 308 — представление 373—374 — CMiniDrawView — функция OnLButtonDown 222— 225, 248—249 — ввод—вывод файла 322— 324 — панели инструментов 431 — преобразование координат 345—346 — прокрутка 352—353, 382 — сохранение документа 295— 296 — функция OnLButtonUp 227— 229, 249—250 — ввод—вывод файла 322— 325 — панели инструментов 431— 432 — представление 359—363 — прокрутка 348, 383—384 — сохранение документа 272— 273, 296—297 — функция OnMouseMove — ввод—вывод файла 322 — панели инструментов 431— 432 — прокрутка 345, 382—383 — ввод—вывод файлов 320—325
— панели инструментов 427—432 — переменная mHArrow 353—354 — представление 218—219, 222— 226, 234—235, 245—250 — прокрутка 345—351, 378—384 — разделение окон 359—366 — разделение окон 378—384 — сохранение документа 270— 273, 292—297 — функция Dump 248 — функция GetDocument 248 — функция OnDraw 248, 281 — ввод—вывод файла 322— 323 — сохранение документа 273— 274 — изменение окон 364—366 — объект контекста устройства 345 — прокрутка 345, 351—352, 381—382 — разделение окон 381—382, 359—360 — функция OnInitialUpdate — панели инструментов 432 — прокрутка и разделение 349, 364, 384 — функция OnMouseMove — представление 226—227, 249 — сохранение документа 296 — функция OnUpdate — панели инструментов 432 — прокрутка и разделение 363—365, 384 — функция PreCreateWindow 234—235, 248 — CMiniEditApp — ввод—вывод файлов 329—332 — представление 255—259 — функция Initlnstance 257—258, 327, 330—331 — ввод—вывод файлов 325—328, 332—335
— CMiniEditDoc — измененный флаг, ввод—вывод файла 306—308 — команды меню File 299—303 — перетаскивание и опускание 308—309 — представление 259—262 — регистрация данных документа 308—309 — функция DeleteContents 335 — функция Serialize 261, 327, 334 — CMiniEditView — ввод—вывод файлов 337—340 — представление 265—267 — функция GetDocument 340 — функция OnDraw 267, 294—295 — ввод—вывод файла 339 — CMonthCalCtrl 453 — CObArray 271, 304 — функция Add 272 — функция GetSize 272, 277 — функция GetUpperBound 272, 281 — CObject 271, 306 — COleCtrl 453 — COleDBRecordView 251 — COleDialog 519 — CPageSetupDialog 519 — CPaintDC 460 — CPitch 493, 514—517 — CPrintDialog 519 — CProgressCtrl 453 — CPropertyPage 489, 491—492, 496 — функция OnlnitDialog 494 — CProperty Sheet 489, 496 — функция AddPage 496 — CPtrArray 271 — CReBar 432 — CReBarCtrl 432, 454 — CRecordView 251 — CRect 352 — объект IntRect 352 — объект ViewRect 352
— функция IntersectRect 352, 365 —функция PtInRect 352 — СRectangle — inline—функции 95—97 — защищенные члены 108—109 — рисование 98 — функция GetCoord 98 — функция SetCoord 98 — CRichEditCtrl 454 — CRichEditView 251 — CRoundBlock 111—112 — рисование 111 — функция SetRadius 111 — CS_, стили 235 — CScrollBar 454 — CScrollView 343—344 — функция GetTotalSize 351—352 — функция OnPrepareDC 345, 355, 364 — функция SetScrollSizes 349—351 — CSExcept 173 — функция GetExceptionlnformation 171 — функция GetExCode 173 — CSingleDocTemplate 210 — CSIiderCtrl 454 — CSpinButtonCtrl 454 — CSplitterWnd 358—359 — переменная m_SplitterWnd 358—359 — функция Create 358—359 — CStatic 454 — CStatusBar 407 — функция Create 408 — функция Setlndicators 408 — CStatusBarCtrl 454 — CStdioFile 341 — CStyle 493, 517—518 — CTabCtrl 454 — CTabDemoApp 498—501 — функция Initlnstance 500—500 — CTabDemoDoc 495—497, 502— 505
— функция OnTextFormat 495— 496, 504—505 — CTabDemoView 508—512 — функция OnDraw 510—512 — CToolBar 397—400 — объект m_WndToolbar 400 — переменная m_Toolbar 397 — функция CreateEx 398—399 — функция LoadToolBar 398 — CToolBarCtrl 454 — CToolTipCtrl 454 — CTreeCtrl 454 — CTreeView 251 — CTypedPtrArray 270—271 — переменная m_LineArray 270— 272 — функция GetAt 272, 277 281 — CTypedPtrList 271 — CTypedPtrMap 271 — CView 216, 224 — обработчик OnPaint 460 — функция GetDocument 189, 203, 273 — функция OnPaint 461 — CWinApp 191—192, 207—208 — переменная m_pMainWnd 308 — функция Enable3dControlsStatic 212 — функция EnableSdControls 211 — функция EnableShellOpen 308— 309 — функция Exitlnstance 208 — функция LoadStandardCursor 219 — функция LoadStdProfileSettings 211 — функция OnFileNew 211—212, 275, 301 — функция OnFileOpen 302 — функция ProcessCommandLine 211 — функция ProcessShellCommand 211, 308—309
— функция RegisterShellFileTypes 308—309 — CWinGreetApp 191—192, 194— 196, 207—208 — функция AddDocTemplate 196, 210—211 — функция Initlnstance 196—197, 208—211 — CWinGreetDoc 186—187, 191— 192, 197—199 — функция GetMessage 187, 189, 198 — функция OnNewDocument 200 — функция Serialize 200 — CWinGreetView 187—189, 191— 192, 203—205 — функция OnDraw 189, 205 — функция PreCreateWindow 204 — CWnd 224, 457 — переменная m_Dragging 224 — функция CheckDIgButton 457 — функция CheckRadioButton 457 — функция ClientToScreen 224, 352 — функция DestroyWindow 489 — функция DIgDirList 457 — функция DIgDirListComboBox 457 — функция DIgDirSelect 457 — функция DIgDirSelectComboBox 457 — функция DragAcceptFiles 308— 309, 327 — функция EnableWindow 452— 453 — функция GetCheckedRadioButton 457 — функция GetClientRect 189, 223—224 — функция GetDlgItem 453, 457 — функция GetDlgItemInt 457 — функция GetDlgItemText 457 — функция GetNextDlgGroupItem 457
— функция GetNextDlgTabItem 457 — функция InvalidateRect 364— 365 — функция IsDIgButtonChecked 455, 457 — функция SendDlgItemMessage 457 — функция SetCapture 223—224 — функция SetDlgItemText 457 — функция SetltemInt 457 — функция SetWindowText 327, 467 — функция UpdateData 446, 489 — функция UpdateWindow 211, 428—430 — CEdit 326 — iostream 131, 341 — функция Get 37 — функция GetLine 37 — ScrollRect 352 — базовый — косвенно 111 — виртуальные функции 120— 121 — блока со списком 453 — главного окна 191—192 — рамки 191 — диалогового окна 445—448 — Format 445—448 — для печати и предварительного просмотра 519 — для поиска текста 519 — для цвета 519 — для шрифта 519 — для полосы прокрутки 454 — документа 186, 190—192 — иерархия 111—116, 182—185 — изображения 454 — инкапсуляции 84—87 — кнопки 453—454 — разворачивания 191 — сворачивания 191
— коллекции 271 — меню 191 — окна Windows 235 — окна редактирования 454 — определение 80—81 — отображение 113—115 —представления 187—188, 190— 192 — обработки сообщений 221 — закрашивание 188 — отображения 187—188, 191—192 — перерисовка 188 — приложения 191—192 — для сообщений панели инструментов 400 — обработчиков сообщений 221 — производный, адрес 116 — рамки 191 — реконфигурируемых элементов управления 454 — статических элементов управления 454 — строки заголовков 191 — строки состояния 191 — текстовых блоков 454 — флажка 453 — элемента управления рисунком 454 — элементов управления —адресами IP 454 — вкладками 454 — горячими клавишами 454 — древовидных 454 — ползунком 454 — переменные 446—448 — функции 224 — функции—члены и переменные—члены 81, 106 Кнопка — Add Variable 446—447 — Build 41, 43, 46, 189
— Cancel в диалоговых окнах 437 — Circle 391 — Execute Program 189 — Go 44 — для отладчика 46 — Insert/Remove Breakpoint 44 — New Dialog 437 — New Text File 43 — New Toolbar 392 — Next Key Typed 254 — OK — в диалоговых окнах 437 — по умолчанию 441 — Open 44 — Save 36 — Step Over 46—47 — Stop Build 42 — для каталога проекта 28 — малая 392—393 — панели инструментов — проектирование 392—394 — пропуски 393, 401 — разблокирование 405 — производный 105—106, 111—112 — косвенно 111 — свойства 440 — свойство Default Button 441 — управление 113—115 Кнопки — редактирование изображения 393—394 — свойства 444 Коды EXCEPTION_ 171 Коллекция 271 Команда — About 389 — для WinGreet 190 — Circle 395—396, 401 — Delete All 274—275, 278—279 — Double 396, 413 — Exit 190, 461 — Find 252 — Find Next 252
— Format 461 — Line 395—396 — Open 190, 299—302, 324—325 — Print 252 — Recent File 299—300, 324—325 — Rect Fill 395, 412 — Rect Round Fill 395—396 — Rect Round 395, 401 — Rectangle 395—396 — Replace 252 — Save 299—300, 324—325 — Save As 299—300, 324—325 — Select All 252 — Single 396, 404 — Toolbar 396—397 — Tools 395 — Undo 275—276, 280—281 —Triple 396—397 — и обработчики сообщения 221— 222 — отображение 389, 408 Команды меню — инициализация 279—280 — реализации 277—281 — сообщения и обработчики сообщений 277—281 Комбинации клавиш — для создания и редактирования файлов 32—35 — идентификаторы 281 — определение 253—254 — свойства 254 — сообщения 221 Комментарии TODO 187 Компакт—диск прилагаемый 24 Компилятор 23, 89—90 — Visual C++ 23 Компонент —ActiveX 23, 182,443,454 — Build Tools 23 — Data Access 23—24 — Developer Studio 21—22 — Enterprise Tools 23
— Graphics 23 — базы данных 23—24 — перетаскивания и отпускания 308—309, 327 Константа — _MAX_DIR 302 — _MAX_DRIVE 302 — _MAX_EXT 302 — _MAX_FNAME 302 — _MAX_PATH 302 — в операторе throw 158 — в определениях объекта 91—92 — и константные типы и функции 71—72 — и константные типы 67—68 — и указатели 68—69 — как параметр 71 — с перегрузкой 74 — со ссылками 63, 66—67, 69—70 — инициализация 67, 70 Конструктор — для локальных объектов 95 — для массива 95—96 — для производных классов 107— 108 — для шаблонов 154—156 — и деструктор, порядок 108 —копирования 135—137, 143—144 — перегрузка 140—141 — по умолчанию 88—90, 93, 107, 208 —преобразования 135, 138—139 — неявное использование 139—143 — вызов 95—96 — глобальные объекты и переменные 95 —инициализация 87—89, 90—93 — классы 87—90 — параметры 87—89, 91—93, 135— 139 — переадресация 89—90, 140—141 Контрольные отметки —для кнопок 444 — для пунктов меню 279, 404—406
Конфигурация активная 41 Координаты — для диалоговых окон 451 — курсора 224—225 — линий 270 — окна 451 — рисунков 352—353 —устройства 344—348, 352 — преобразование 344—346, 352, 364, 451 — экрана 224 — и окна, преобразование 451 — преобразование 225 — элементов управления 458 — преобразование 224 Круглые отметки для пунктов меню : 279, 406 Л Линии разделения 356 Линия, размещение 270 Листинги программы, полужирный стиль 187 Логотип, требования 179 М Макрос —_max 84—86 — _min 84—86 — BEGIN_MESSAGE_MAP 226 — DECLARE_SERIAL 305, 313 — IMPLEMENT_SERIAL 305—306 — max 362 — min 362 — ON_WM_LBUTTONDOWN 226 — ON_WM_LBUTTONUP 226 — ON_WM_MOUSEMOVE 226 — RUNTIME_CLASS (MFC) 21) Массив IndicatorIDs 407—409, 425 Массив, определение размеров 67 Массивы — в шаблонах класса 152 — для панелей инструментов 425 — для строк состояния 407—409, 425 — выделение памяти 76—77
—инициализация 96 143—144 Мастер — AppWizard 179 — генерирование исходного текста 180—186, 218, 235—236 — для классов 190—194 — для разделения окон 358—359 — для таблиц соответствия сообщений 224 — редактирование исходного текста 186—189 — ClassWizard 179 — для обработки сообщения 221— 227 — для обработки сообщения 448— 450 — код сгенерированный 235—236 — для команд меню 277—281 — для переопределения виртуальных функций 275—277 — редактирование 235—236 Менеджер проекта 21 Меню — Build — команда Build 189 — команда Configuration 40, 189 — команда.execute 42, 189 — команда Rebuild All 41 — команда Set Active Configuration 41, 46 — команда Set Active Project Configuration 43 — команда Start Debug 44 — Debug, команда Go 46 — File — команда Close Workspace 31 — команда New 27, 31,180 — команда Open 44 — команда Open Workspace 31, 39 — команда Recent Workspace 39 — команда Save All 233 — команда Save As 190 — команда Save 36
— Help — команда Contents 38 — команда Keyboard Map 32 — Image, команда Delete Device Image 233 — Insert, команда Resource 392, 437 — Layout, команда Tab Order 444 — Project, команда Settings 39, 60, 159 — View — команда ClassWizard 222 — команда Debug Windows 45 — команда Large.icon 232 — команда Output 41 — команда Small.icon 232 — команда Workspace 30 — расположенные каскадно 275 — системное 190—191 — разделитель 252, 275, 300 — свойства 252, 275, 299—300 Метки с реконфигурируемым элементом управления 433 Метки со списком 442 Мнемоники для элементов управления диалогового окна 444 Многократное использование кода 113 Многократное наследование 113 Многострочные элементы управления 441 Модели исключений 163 Модели памяти 41 Мышь, захват 224, 229 Н Направление сообщения 221—222 Наследование 105, 108—110, 113 — множественное 113 — функции и переменные класса 105 Начало координат — в графике 345 — области представления 345 Начало текста 345 Нежелательное мерцание 234—235
Номер версии 305 О Области прокрутки 348—356 Область недействительная 364—365 Область обновления 364 Обновление для разделения представлений 359—366 Обработка сообщений — команды Exit 222 — команды Save 222 — по умолчанию 221, 226, 460 Обработчик — COMMAND 277, 400 — UPDATE_COMMAND_UI 278— 280, 400—401, 405,408 — выравнивания — по левому краю 450, 456 — по правому краю 450, 456 — диалогового окна Format 449—450 — идентификатора — IDC_BOLD 450 — IDCJTALIC 450 — IDC_LEFT 450 — IDC_R1GHT 450 — IDC_SPACING 450 — IDC_ UNDERLINE 450 — IDC_VARIABLE 450 — класса CFormat 448—450 — курсивного стиля 450, 455 — полужирного стиля 450, 454—455 — стиля с подчеркиванием 450, 455 — сообщения — WM_LBUTTONUP 227—229 — кнопки ОК 460 — кнопки Cancel 460 — флажков 450, 454—455 — элементов управления 449—450 — параметры 230—231 Обработчики — программа FontDemo 449—450 — программа MiniDraw 220—221 —для окон 221—222 Объект 81
— cin 37 — cout 36—37 — интерфейса пользователя 221 — как параметр 138 — как тип результата 137 — контекста устройства 188—189 — основанный на шаблоне 152—154 — срок жизни 76 — с исключением 165—167 Окно — Output 41—42 —Watch 45—46 —Workspace 30 —дочернее 191, 358 — настраиваемое 233—235 — представления 190—192, 216, 233—235 — разделенное, закрашивание 359—360 — объект контекста устройства 227 — разделение 356—366 — программы — MiniDraw 233—235 — WinGreet 189—190 — с графическим интерфейсом 189—190 — процедуры 221 — разворачивание 190 — прокрутка 356 — редактирования — расширенное 441 — свойства 440 — редактора — акселераторов 254 — меню 231 — панели инструментов 392—393 — сворачивание 190 Оператор — catch, типы данных 159—161 — delete 76—77, 82, 489 — new 75—77, 81—82, 87—88, 95— 96, 164, 174, 210, 489
— и выделение памяти 77 — throw 158 — переменные 158 — присваивания, перегрузка 131— 135 — расширения области видимости для переменные 57—59 — перегруженный, старшинство 126, 130—131 Операция — undo/redo в исходных файлах 35 — перегрузки 36, 124—126 — одноместная 130—131 — перетаскивания 224 — расширения области видимости 96, 100—102, 225 — ссылки, пробелы 62 Определение шаблонов — класса 150—156 — функций 146—150 Определения, инициализация 136— 137 Опции перемешаемой панели инструментов 388 Опция 183 — Add Function 222, 277 — Add To Project Box 3! — Delete Function 235 — Document/View Architecture Support 181 — Edit Code 279 — Empty Project 29 — Initial 388, 410 — Optimizations 60 — String Table 301 — Use Split Window 359 — Warnings As Errors 40 Открытие — блока со списком 442 — диалоговых окон 46!—462 — исходных файлов 38, 186 — проекта 31 43—44 — рабочей области 30
— файла 186, 308—309, 519 Отладка 43—46 — использование клавиш 43 — текущая строка 45—46 Отладочные версии 39—4!, 43 Отладчик, встраивание 43 Отображение диалогового окна 462—467, 488 Ошибки переопределения символических констант 98 П Память — объекты 133 — ссылки 63 — экземпляры 81—82 Панель инструментов — Colors 389, 393 — Controls 437—438 — Dialog 437—438 — Graphics 393 — заблокированные кнопки 405— 406 — заблокированные пункты 389 — захват 398 — и строка состояния 389 396—397 — кнопка 389 — Filled Circle 391 — Line 391 — Rectangle 391 — Round Filled Rectangle 391 — Round Rectangle 391 — Single—Thickness line 391 — Triple—Thickness line 391 — для блока со списком 438 — для вертикальной полосы прокрутки 438 — для горизонтальной полосы прокрутки 438 — для групповых блоков 438 — для древовидного элемента управления 438 — для команды — Copy 389
— Cut 389 — Open 389 — Paste 389 — Print 389 — Save 389 — для линии 391 — двойной толщины 391 — для меню — Edit 389 — File 389 — Help 389 — для настраиваемых элементов управления 438 — для окна редактирования 438 — для полосы прокрутки 438 — для статических элементов управления текстом 438 — для текстового блока 438 — для толщины линий 391 — для флажка 438 —для формы 391 — для элемента управления — вкладками 438 — прокруткой 438 — горячими клавишами 438 — ползунком 438 — метки для кнопок меню 392—394 — перемещение 389 — ресурсы 390—397 — свойства 392 —сообщения 221, 397—406 — стандартная 399 — стили 398—399 — цвет кнопок 393 — элементы управления реконфигурируемые 433 Папки — в окнах списков 457 — для программ 180—181 — для проектов 28, 43 Параметры — в перегруженных операторах 128 — в шаблонах класса 151—154
— в шаблонах функций 147—148 — по умолчанию 60—62, 74 — типов в шаблонах функции 147— 148 — передача значений 64 Перегруженные операторы — ассоциативность 130—131 — дополнительные функции 127— 130 — синтаксис 130 — параметры 72—75 — преобразование 74 Передача сообщений 221 Перекрашивание 235, 273—274 Переменные 81 — m_prefix 186 — динамические 68 — для группы элементов управления 447—448 — для исключений 165—167 — для курсивного стиля 447 — для параметров функции по умолчанию 61 — для полужирного стиля 447 — для стиля с подчеркиванием 447 — для флажка 447 — для экземпляров 81—82 — идентификатора — IDCJ30LD 446—447 — IDCJTALIC 447 — IDC_LEFT 447 — IDC_SPACING 447 — IDC_UNDERL1NE 447 — IDC_VARIABLE 447 — класса, доступ 82—87 — локальные со ссылочными типами 68 — определение в классе CFormat 447 — производных классов 106 — редактирование 46 — статические 68 Перерисовка 235, 273—274 Побочные эффекты 71
Подокна в строках состояния 389— 390 Поле — Files of type 301 — Filter name 301 — Line Spacing 458 — Maximum Value 447 — Save as type 301 — со списком 442 Полиморфизм 118 Полоса прокрутки — вертикальная 342——344 — горизонтальная 343—344, 442 Порядок обхода, фокус ввода 443— 445 Порядок удаления 108 Построение 189—190 Представление 216 — FileView 184—185 — ResourceView 231—232 Предупреждающие сообщения 41— 42 Преобразование координат — устройства 344—346, 352, 364 — объект контекста устройства 345—346 Префикс Afx 220 Приведение типов 138 Приложения консольные 27 Приложения, инициализация 208— 211 Присваивания указателям базового класса 116 Проверка правильности контролируемых значений 447 Программа — FontDemo 436 — генерация исходных файлов 437 — класс CMainFrame 474—478 — классы 445—448 — меню Text 461—462 — название 467
— отображение диалоговых окон 462—467 — создание диалоговых окон 437—445 —файл MainFnn.cpp 476—478 — файл MainFrm.h 474—476 — Greet — выполнение 42—43 — отладка 43—46 — построение 41—42 — создание 28 — MiniDraw 216—217 — добавление панели инструментов 390—391 — значок 231—234 — изменение окон 273—274 — измененный флаг, ввод—вывод файла 306—308 — исходные файлы 218 — исходные файлы 275 301 — класс CMainFrame 243—245, 376—378 — ввод—вывод файлов 318— 320 — панели инструментов 397— 398, 423—427 — разбиение окон 358, 376— 378 — сохранение документа 290— 292 — строки состояния 406—410, 423—427 — меню 231—232, 299—303 — File 231, 299—303 — Edit 232, 274—275 — Lines 395—397 —Tools 394—395, 412 — View 396—397, 410 — для ввода—вывода файла 299—303 — для команд панели инструментов 394—397
— для редактирования документов 274—281 — обработчик сообщений — OnLButtonDown 222—225 — OnLButtonUp 227—230 — OnMouseMove 226—227 — ограничение размера при прокрутке 348—353 — перетаскивание и отпускание 308—309 — преобразование координат 344—348 — прокрутка 343—344 — разделение окон 356—357 — регистрация — данных документа 308—309 — типов файлов 308—309 —ресурсы 231—233, 390—397 — сериализация данных 302—306 — строка состояния 407—410 — удаление данных 275—277 — файл MainFnn.cpp 244—245, 263—265, 291—292, 319—320, 336—337 377—378 — файл MainFrm.h 243—244, 290—291, 318—319, 376—377, 422—424 — элементы 218—220 — MiniEdit 250—251, 325—340 — ввод—вывод файлов 325—328 — значок 254 — исходные файлы 324—325 — класс CMainFrame 263—265, 335—337 — меню 252—254 — Edit 252—253 — File 252, 325—326 — для ввода—вывода файла 325 — реализация технологии "'drag— and—drop" 327 —ресурсы 252—255, 325 — сериализация 327—328
— создание 251—255 — файл MainFrm.h 262—263, 335—336 — rc.exe 233 — Resource Compiler 233 — Setup 18—20 — TabDemo 490—497 — класс CMainFrame 506—508 — файл MainFrm.cpp 507—508 — файл MainFrm.h 506—507 — WinGreet — генерация исходных файлов 180—186 — исходные файлы редактирование 186—189 — класс CMainFrame 191—192, 201—203 — класс CView 187—188, 191— 192 — классы и файлы 190—205 — классы 190—194 — меню 190 — Edit 190 — File 190—191 — Help 190 — построение и выполнение 189— 190 — управление потоком данных 206—208 — файл MainFrm.cpp 191—192, 201—203 — файл MainFrm.h 191—192, 201—202 — WinMain обработка и обработчики сообщений 208 — графического интерфейса, управление потоком данных 206— 208 — с графическим интерфейсом, классы и файлы 190—205 — с графическим интерфейсом, построение и выполнение 189— 190
— версия 39—40, 43, 46 —выполнение 42—43, 189—190 — инициализация 208—211 — отладка 43—46, 68 —построение 41—42, 189—190 — приостановка 37 — продолжение после обработки исключения 163 — рамки для окон 190 — управление 189—190 Программирование графического интерфейса с помощью MFC 22— 23 Программное обеспечение, требования 18 Программы 16—битовые и 32— битовые, сравнение 28 Программы графического интерфейса 178—179 Проект — создание 185 — закрытие 31 — рабочая область 27, 30 — установки 39—41 Производные классы — в явном виде 111 — при сериализации 306 Прокрутка — закрашивание 345 — изменение указателя 353—355 — начальный выбор 345 — обновление 345 — перекрашивание 345 — перерисовка 345 — полосы 343—344 — преобразование координат 344— 348 — режим отображения MM_TEXT 349 — режимы отображения 350 Просмотр, переменные—члены 115 Протокол Internet 441, 454 Прямоугольник
— ограничивающий 361—362 364 — размер 362 364 — заполнение 395 Пункт меню — разблокирование 279 — табуляция 252 — удаление 231—232 — недоступный 279 — подчеркнутый символ 252 Р Работа с базой данных 181—182 Рабочая область 191 Разделение окон — в новых приложениях 358—359 — изменение представления 359— 366 — по вертикали 358 — по горизонтали 358 Разделение представлений — перекрашивание 359—360 — перерисовка 359—360 Разделы справочной системы для инсталляции 21 Размер встроенных функций 60 Размещение 164—167 Раннее связывание 118 Расширение 301—302 Редактирование, использование клавиш 33—35 Реестр 190, 300 Режим — отладки пошаговый 46 — отображения — единицы измерения 350 — координаты 350 — отображения объектов контекста устройства 350 Ресурсы 193 Рисунок — область вырезания 345, 365 — ограничение размера 348—356 — размер при прокрутке 348—356 — размещение 352—353
С Свободная память 75—77 Свойство — Default 441 — Group 441 —Tab Stop 441, 443—444 Связывание 118 — статическое 118 — позднее 118 Сериализация данных 303—306 Системный шрифт System 436 Скомпилированные файлы 271 Сообщение 222, 225—226, 235 — BN_CLICKED 450, 460 — BN_DOUBLE_CLICKED 450 — EN_CHANGE 450 — WM_CREATE 397 — WMJNITDIALOG 448—450 — WM_LBUTTONDOWN 222—224 — WM MOUSEMOVE 226—227, 229 — WM_PAINT 450 — и обработчики сообщений 192, 220—221, 397—406 — командные 221—222 — комбинаций клавиш 221 — меню 221 — мыши 220—222, 450 — параметр nFlags 230—231 — параметры 230—231 — о простое 409 — переадресация 221 — при закрашивании 450 — при обновлении 450 — при перерисовке 450 Сопоставление имен — классов С и C++ 191 — конструкторов С и C++ 87 — папок С и C++ 42 — программ С и C++ 180, 191, 302— 303 — файлов программ на С с C++ 27— 28 — функций С и C++ 72—73
Сопоставление макросов со встроенными функциями inline 60—61 Сохранение — буферы 327 — графика, 270—273 — графических данных 270—273 — данных в программе MiniDraw 270—273 — данных документа 270—273 — диалоговых окон 445 — изменений ресурсов 233 Спецификатор доступа —private 82—84 110 — protected 84 — для конструкторов 87 — для производных классов 108— 110 — public 82—84 — для конструкторов 87 — для перегруженных операторов 126 — для производных классов 106, 110 Список — Base class 445 — Category 60, 447—448 — Class name 222, 277 — ClassView 113—115 — Control IDs 446—448 — Device 233 — Dialog ID 445 — Inline—Function Expansion 60 — Messages 222, 276, 448 — Object (Ds 222, 276, 281, 448 — Resource type 392 — Select Active Configuration 43 — Set Active Configuration 41, 46 — Settings For 39—40 — Variable Type 446—447 — древовидный 442 — инициализации 91—93 — элементов 90—91, 107
— поля 442, 453 Справочная система 23 — вкладка Contents 38—39 — разделы 21, 23 — создание и редактирование исходных файлов 38—40 Ссылка — в C++ 62—67 — и функция 64—67 — возвращающая ссылку 65—67, 71—72 — как параметр 64—67 — конструктора копирования 137 — перегруженной функции 74, 126 — инициализация 63 — тип и параметр значения 62—67, 71 Статические члены класса, определение 101—102 Стек 165—166 Стиль — CBRS_ALIGN_ANY 398 — CBRS_FLYBY 398 — CBRS_GRIPPER 398 — CBRS_SIZE_DYNAMIC 398 — CBRS_TOOLTIPS 398 — CBRS_TOP 398 — TBSTYLEJFLAT 398 — WS_CHILD 398 — WS_VISIBLE 398 Страница — Style 490—492 — прокрутка 351 — ширина символов и интервал между строками 490—491, 493 Страницы, согласование 490—491, 493 Строка — заголовков 190, 467 — ресурсов 410 — состояния — в новой программе 387—390 — описания 389, 408
— пропуски 407 — разделитель 407 Структура — CREATESTRUCT 235 — SIZE 349 — распределение памяти 75—76 — хранение 328 Структуры и классы 80—81 Структуры, ссылочные типы 65 Т Таблица соответствия сообщений 222, 225—226 235 Текст — выравнивание 440, 450—451 — поиск и замена 519 — редактирование 34 — цвет 467 Текстовое поле — Caption 252, 275, 301, 440 — File Extension 301 — File Name 302 — ID 275 —Location 28, 180—181 — Member Variable Name 447 — Project Name 28, 180 — Prompt 394, 410 — свойства 440 Текущие объекты 100 Типы — в inline—функциях по сравнению с макросами 60 — данных — int 447 — в деструкторе 93 — в конструкторе 87 — в перегруженных операторах 73—74 — поля 447 — распределение памяти 75 — констант в C++ 67—72 — полей 447 — с выделением памяти 75 — файлов, регистрация 308—309
— сериализация 306 Точки контрольные 44—45 У Удаление объекта 165—167 Указатель 216, 353—355 —this 99—100 — в сравнении со ссылочными переменными 63—64 — и константные типы 68—69 — инициализация 68 — как параметр 65, 71—72 — как типы данных 71—72 — крестообразный 220 — мыши 216 — l—луч 220 — вертикальная стрелка 220 — выбор, кнопка панели инструментов 438 — песочные часы 220 — прокрутка в программе MiniDraw 353—356 — на базовый класс 116 — на классы 116 — на объект — класса 83 — класса CObject 270 — класса приложения 219—220 — на элемент управления 453 — отображение 234—235 — размещение 224—225 Установки проекта 40 Ф Файл — Afxtempl.h 271 — CBlock.h 109—110 — CCurr.h 141—142 — CList.h 155 — Cmess.h 142—143 — CRect.cpp 98 — CRect.h 98—98 —Eh.h 171 — ExcTypes.cpp 161—162 — ExTrans.cpp 173—174
— FontDemo.cpp 468—471 — FontDemo.h 467—469 — FontDemoDoc.cpp 472—475 — FontDemoDoc.h 471—473 — FontDemoView.cpp 479—482 — FontDemoView.h 478—479 — Format.cpp 445, 483—488 — Format.h 445, 482—483 — Greet.cpp 31—32, 36—37 — iostream.h 36 — Jusfify.cpp 513—514 — Justify.h 513—514 — MiniDraw.cpp 237—240 — ввод—вывод файла 310—313 — панели инструментов 412—418 — прокрутка и разделение 367— 370 — сохранение документа 282—285 — MiniDraw dsw 218 — MiniDraw.h 218—219, 235—237 — ввод—вывод файла 309—310 — панели инструментов 410—412 — прокрутка и разделение 366— 367 — сохранение документа 281—283 — MiniDraw.ico 233 — MiniDraw.rc 233 — MiniDrawDoc.cpp 241—243 — ввод—вывод файла 313—315 — панели инструментов 419—423 — прокрутка и разделение 372— 375 — сохранение документа 287—290 — MiniDrawDoc.h 240—241 — ввод—вывод файла 313—315 — панели инструментов 417—419 — прокрутка и разделение 370— 372 — сохранение документа 285—286 — MiniDrawView.cpp 222—223 247—250 — ввод—вывод файла 321—323 — панели инструментов 428—432
— прокрутка и разделение 380— 384 — сохранение документа 294—297 — MiniDrawView.h 222, 225, 245— 247 — ввод—вывод файла 320—322 — панели инструментов 426—428 — прокрутка и разделение 378— 380 — сохранение документа 292—294 — MiniEdit.cpp 256—259 — ввод—вывод файла 329—332 — MiniEdit.h 255—256 — ввод—вывод файла 328—329 — MiniEditDoc.cpp 260—262 — ввод—вывод файла 333—335 — MiniEditDoc.h 259—261 — ввод—вывод файла 332—333 — MiniEditView.cpp 266—267 — ввод—вывод файла 338—340 — MiniEditView.h 265—266, 337— 339 — Pitch.cpp 515—517 — Pitch.h 514—515 — ReadMe.txt 192 — Resource,.h 193 — StdAfx.cpp 193—194 — StdAfx.h 193—194, 271 — Stdlib.h 85, 303 — Style.cpp 517—518 — Style.h 516—517 — TabDemo.cpp 499—501 — TabDemo.h 497—499 — TabDemoDoc.cpp 503—505 — TabDemoDoc.h 502—503 — TabDemoView.cpp 509—512 — TabDemoView.h 508—509 — Unwind.cpp 165—167 — Windows.h 171, 362 — Wingreet.rc2 193 — WinGreet.aps 192 — WinGreet.clw 193
— WinGreet.cpp 191—192, 195—197, 207—208 — WinGreet.dsp 193 — WinGreet.dsw 193 — WinGreet.h 191—194 — WinGreet.ico 193 — WinGreet.ncb 192 — WinGreet.opt 192 — WinGreet.plg 192 — WinGreet.rc 193 — WinGreetDoc.cpp 187, 191—192 — WinGreetDoc.h 186, 191—192, 197—199 — WinGreetDoc.ico 193 — WinGreetView.cpp 188 191— 192,204—205 — WinGreetView.h 191—192, 203— 204 — ввод—вывод, альтернативные методы 340—341 — для мастера (окно) ClassWizard 193 — заголовков 60 67, 97—98, 193 — inline—функций 60 — константы 67 — ресурсы 193 — реализации 98 — связывание 98 — значок 193 — конфигурация 42 — печать 519 — расширения по умолчанию 301— 302 — списки 457 Флаг — DT_CENTER 189 — DT_VCENTER 189 — HEAP_GENERATE_EXCEPTIONS 169 — изменений 306—308 Флажок, свойства 439 Функция — _controlfp 172
— _set_se_translator 171 — ClipCursor (API) 224—225, 229, 352 — Delete, исключения 212 — GetSysColor (API) 467 — HeapAllocate 169 — malloc 76 — PostQuitMessage (APi) 208 — Release—Capture (API) 229 — RemoveAll 277 — SetCursor (API) 227—228 — SETranslate 171—174 — ShowWindow , 211 — Sleep (API) 227 — UpdateAllViews — параметр lHint 363—364 — параметр pHint 363—364 — WinMain 208—209 — в C++, параметры по умолчанию 60—62 — ввода—вывода Win32 341 — встраивание 59—60, 96—97 — выбор переключателей 457 — глобальная 220 — завершение 163 — заполненные круги и прямоугольники 400, 403—405, 416—417 — и константы 71—72 — и ссылки 64—67 — константные объекты 91—92 — линия двойной толщины 400— 401, 415 —линия 400—401, 416—417 —неоднозначная 74, 139 — перегрузка 72—75, 140—141, 147—148 — поле со списком 457 — преобразования 143 — списки 457 — стандартные параметры 61 — толщина линий 400—401, 416— 417
— удаление 235 Ч Члены класса — дружественные, доступ 128—129 — инкапсулированные, доступ 84— 87 — наследуемые, доступ 108—110 —статические 95, 100—103 — доступ 101—102 — инициализация 101 — встраивание 96—97 —доступ 82—87, 108—110 — инициализация 87—89, 90—93 — инкапсуляция 84—87 — преобразование 143 Члены производных классов, доступ 108—110 Ш Шаблон — диалогового окна 433 —документа 196, 210—211 — класса 150—156 — конкретизация 152 — параметры 151—154 — переопределение 149—150 — функции 74, 146—150, 154—156 — инициализация 154—155 Шрифт System, полужирный стиль 437 Э Экземпляр — создание 81—83, 87—88, 95—96 — инициализация 90—93 Элемент управления — адресами IP 441 — анимационный 438, 443 — вкладками 443 — горячие клавиши 443 — дата/время 443 — дерево 442 — единицы измерения 441 — захват 433
— идентификатор IDC_SPACING 452 — идентификаторы 439—441 — календарь по месяцам 443, 454 — кнопка прокрутки 442 — кнопки 438 — метки меню 433 — отображение 453 — подчеркнутые знаки 444 — позиция и размер 441 — поле 452 — ползунок 442 — размер 441, 443 — размещение 441, 443, 457 — расширенное поле 454 — редактирования 452 — реконфигурируемый 387 — реконфигурируемый, описания 433 — рисунком 441 — свойства 439—441 — статический 441 — стили 442 — строка состояния 454 — счетчик 442 — табуляция 443—445 — текстовый 326 — фокус ввода 443—445, 458