Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Гилберт С., Маккарти Б. - Самоучитель Visual C++ 6 в примерах - 2003

.pdf
Скачиваний:
554
Добавлен:
13.08.2013
Размер:
44.86 Mб
Скачать

С.Гилберт, Б.Маккарти

САМОУЧИТЕЛЬ VISUAL C++ 6 В ПРИМЕРАХ

Книга Самоучитель Visual C++ 6 в примерах, написанная авторами множества бестселлеров Стивеном Гилбертом и Биллом Маккарти, представляет собой введение в искусство программирования в среде Visual C++ 6 с использованием как Windows API, так и библиотеки Microsoft Foundation Classes (MFC).

Простой и доступный стиль изложения, изобилие примеров, доступных в виде исходных кодов на сопровождающем CD-ROM, позволяют за короткое время научиться основам создания Windows-приложений и приступить к самостоятельной работе. Книга является неформальным руководством по технологии программирования с использованием MFC. Подробно рассматриваются вопросы, связанные с построением форм, диалоговых окон, приложений для работы с базами данных, приложений с архитектурой "документпредставление" (DocView), программ рисования и Web-браузеров. Немалое внимание уделяется проблемам повторного использования кода, а также работе с компонентами и элементами управления ActiveX.

Внимательно ознакомившись с книгой, любой читатель сможет немедленно приступить к самостоятельному созданию эффективных бизнес-приложений.

Для широкого круга разработчиков программного обеспечения на платформе

Microsoft.

Оглавление

 

Введение

8

Глава 1. Создание вашего первого приложения: изучение методов

12

использования VC++

 

Запуск VC++

13

Проект NotePod: предварительное обсуждение

15

Начинаем работать с AppWizard

16

Исследование вашего проекта

25

Активизация проекта NotePod

28

Новый всемирный порядок

30

Фокусы с картами или фокусы со шляпами: что это означает?

33

Глава 2. Программирование в среде Windows

35

Проблемы, возникающие при работе с DOS

36

Решения, предлагаемые Windows

39

Оригинальные методы программирования в среде Windows: использование

41

API

 

Программирование в среде Windows: MFC

51

Об MFC всерьез

58

Глава 3. Создание простого приложения на основе диалоговых окон

59

Ресурсы и диалоговые окна

60

Начало работы с Dialog Editor

65

Встреча с Bitmap Editor

68

И снова Dialog Editor

74

Заключительные штрихи

86

Глава 4. Диалоговые окна

87

Структура приложения FourUp

88

Знакомьтесь: объект приложения

92

Обзор окон

101

Введение в ресурсы

108

Завершение исследования ресурсов: краткое повторение

110

Глава 5. Элементы управления и ClassWizard: реальные диалоговые

111

окна

 

Планирование деятельности

112

Вернемся к Dialog Editor

113

Создание кода

119

Ответ на события BN_CLICKED

121

Создание функции OnDealCards()

124

Создание кода: сдача карт и одсчет общего выигрыша

127

Рискуйте!

132

Глава 6. Понятие об элементах управления

133

Краткий обзор CWnd

134

Углубленное знакомство с CStatic

139

Семейство CButton

144

Заключительное слово

151

Глава 7. Компьютерная графика: создание графического приложения

152

Графика в одной линии

153

Быстрый взгляд внутрь LineOne

156

Парадокс с LineTwo

159

Рисование изображений в Windows

164

Инструменты рисования

166

Непрерывное рисование

168

PaintItGray

170

Вперед и вверх

172

Глава 8. Графика и текст

173

За кулисами Windows и GDI

174

Понятие семейства CDC

177

Комплект изобразительных инструментальных средств интерфейса GDI

178

Режимы рисования CDC

187

Создание собственной программы хранителя экрана

188

Что же дальше?

192

Глава 9. Кошмар Пикассо: Построение интерактивной программы

193

рисования

 

Версия 1

программы PaintORama

194

Версия 2

приложения PaintORama: перья на заказ

206

Смотрите нас на следующей неделе, когда...

213

Глава 10. Приложение PaintORama: новая версия программы

214

Версия 3 приложения PaintORama: цвета и стили

215

Приложение PaintORama: линии и формы

223

Вскоре ожидается: только в театрах

233

Глава 11. Построение документов и представлений

235

Приложение PaintORama: еще раз о сообщении WM_PAINT

237

SDIOne: переход к архитектуре DocView

245

Ближайшая перспектива

252

Глава 12. Особенности архитектуры DocView

254

Кто, что и почему?

255

Архитектура DocView: кто с кем разговаривает?

257

Класс CSDIOneApp: вы называете это InitInstance()?

265

Что еще есть в меню?

272

Глава 13. Мечта Пикассо:программа MiniSketch

273

Какую информацию несет в себе имя?

274

MiniSketch получает меню

278

Еще раз обратимся к перьям

285

Куда двигаться дальше?

293

Глава 14. Меню, панели инструментов и строки состояния

294

Командный пользовательский интерфейс

295

Акселераторы

299

Панель инструментов

300

Строки состояния

306

На очереди другие работы

316

Глава 15. Сохранение в MiniSketch: работа с документами и файлами

317

Точки и фигуры

319

Определение классов фигур

321

Реализация классов фигур

326

Использование классов иерархии Shape

328

Возможность сохранения в Minisketch

331

Сериализация

334

Что нового?

338

Глава 16. Совершенно новое представление: прокрутка и печать

339

Что насчет цветов кисти?

340

Соединение документа и представления

342

Рисование фигуры

345

Альтернативные представления: режимы отображения

349

Прокрутка окон представления

353

Печать и предварительный просмотр

354

Теперь о чем-то совершенно другом

361

Глава 17. Повторное использование программного обеспечения:

362

сборка приложения из компонентов

 

Исследование галереи

364

Совершенствование MiniSketch

364

Когда это кажется безопасным: WordZilla

368

Усовершенствование WordZilla

372

ActiveX в панели диалога

380

Глава 18. ActiveX и приложения, основанные на компонентах

381

WordZilla получает диалоговое окно

383

Как работают модальные диалоговые окна

389

Немодальные диалоговые окна

392

ActiveX-версия DatePicker

397

И вновь ActiveX

404

Путешествие к источнику данных

406

Глава 19. Программное обеспечение в работе: создание запроса в базу

407

данных и обновление приложений

 

Сперва получите некоторые данные

409

Доступ к базе данных через ODBC

410

Добавление кода в OBos

417

Использование DAO

423

Использование OLE DB

428

На подходе: ActiveX и "зеленая волна"

429

Глава 20. Основы реляционных баз данных

430

Что представляет собой реляционная база данных?

431

Взгляд на базу данных через призму DAO

434

Реляционные базы данных: SQL

440

Элементы управления ActiveX для работы с базами данных

445

Добавление элементов управления ActiveX в DBExplore

447

Следующая остановка - Web

455

Глава 21. Программирование для Internet: броузеры и другие клиенты

456

HTMLView видит весь мир

457

Предоставление броузеру начальной страницы

459

Новинка: ресурсы HTML

466

Исследование навигации

469

Использование классов WinInet

477

Сохранение персонального броузера

481

Пришло время проститься...

482

Что находится на CD-ROM

483

Предметный указатель

484

 

 

Предметный указатель

 

А

 

Ввод-вывод

40

Акселераторы 299

 

 

Г

Архитектура DocView 255

Галерея 364

 

Архитектура МУС

236

Гиперссылка 464

Атрибут 319, 432

 

Глобальная область видимости 57

Б

 

Группа 149

 

Библиотека 14

 

 

Д

Библиотека классов

52

Дескриптор

176

Броузер 457

 

Диалоговое окно 60

В

 

Добавление записей 422

Домен 432 Драйвер устройства 174

З

Заглушка

326

Закладка

21

ClassView 26

Document Template Strings 21

Window Styles 21

 

Запись 431

 

Защита заголовка 93

 

И

 

Идентификатор 67, 94

 

IDR_MAINFRAME

67

JUNK 94

 

Идентификатор ресурса

66

Идентификатор таймера

169

Индикатор 309

 

Индикатор прозрачного выделения

73

Инструмент 31, 73, 166

Brush

73, 166

Pen 166

Pencil

73

Text

74

WizardBar 31

Инструменты рисования 166 Интегрированная среда разработки

(IDE)

13

 

Интервал таймера

169

Интерфейс

GUI

36

Каркас

17

 

К

 

 

Каркас приложения 52

Карта сообщений

271

Карты

331

 

 

Каталог

432

 

Кисть 166, 186

 

Клавиатурные акселераторы 295

Класс

 

Box 325

 

CAboutDlg

26

CAboutDlg

102

CArray 247

 

CBDApp 56

CBDWindow

56

CBrush

184

 

CButton

144

 

CChildFrame

26

CColorDialog

215

CComboBox

195, 215

CDC 177

 

 

CDialog

102, 135

CDocument 260

CFormView 382

CFourUpApp

63, 95

CFourUpDlg

63, 103

CFrameWnd 52

CListBox 215

CMainFrame

26, 258, 394

CMetaFileDC

195, 237

CMSDoc 331

 

CMSStatusBar

311

CMSView

286

CNotePodApp

26

CNotePodDoc

26

CNotePodView 26

CPaintDC

158

CPaintORamaDlg 197, 238

CPen 179

 

 

CPickDateDlg

396

CSDIOneDoc

260, 262

CStatic

139

 

CString

123

 

CWinApp

100, 257

CWnd 101, 134, 389

CWZView

393

FilledShape

324

Line 323

MyWindowClass 46

Oval

325

Shape

320

Squiggle 324

Кнопки-переключатели 303 Коллекции MFC 329 Колонока 432 Командная строка 271 Компилятор 14 Компилятор ресурсов 90

Компонент 65, 89, 364 Компоновщик 14

Конструктор CFourUpApp 98

Контекст устройства 174 Кортеж 431 Кривая 319

Л

Линия 224

М

Макрокоманда 271, 284, 298, 335 DECLARE_SERIAL() 335

IMPLEMENT_SERIAL()

335

ON COMMAND

284

 

ON_COMMAND()

271

 

ON COMMAND.RANGE

289

UPDATE_COMMAND_UI 298

Маршрутизация команд

281

Массивы 331

 

 

 

Мастер

24, 283

 

 

 

AppWizard

24, 62, 154

 

ClassWizard

121, 163, 283, 402

Мастер советов

14

 

 

Меню 285

 

 

 

 

Метаданные

432

 

 

Метафайл 237, 242

 

 

Метод

57, 121, 129, 138, 167, 200,

242, 264, 266, 288

 

CalculateWinnings()

131

 

Create()

57

 

 

 

 

DealCards()

129

 

 

 

DeflateRect() 200

 

 

GetCheck()

150

 

 

 

GetClientRect()

200

 

 

InitInstance()

57, 266

 

InitPen()

288

 

 

 

KillTimer()

170

 

 

 

LineTo()

167

 

 

 

OnCancel()

121

 

 

 

OnPaint() 168, 242

 

 

Rectangle(). 167

 

 

 

Run() 264

 

 

 

 

SetCharFormat()

373

 

SelectStockObject()

167

 

SetCheck() 150

 

 

 

SetFont() 138

SetTimer() 169

Метод резиновой нити 195, 227 Модальное диалоговое окно 383

Н

Немодальные диалоговые окна 392 Непрерывное рисование 168

О

Оболочка 270

Общие диалоговые окна Windows 217

Общие элементы управления Win32 207

Объект 57, 247, 335 CArchive 335 CBDApp 57 CPoint 247

Объект приложения 92 Объекты-контроллеры 236 Объекты-модели 236 Объекты-представления 236 Овал 319 Ограничения 432 Оконная процедура 50

Операционная система 38 DOS 38

Windows 38, 39

Определение класса 95 Опрос 39 Отношения 431 Отсечение 177

Очередизованный ввод 39 Очистка памяти 333

П

Палитра 73 Color 73 Drawing 73

Панель инструментов 65, 295, 300, 470

Первичный ключ 432 Передача сообщений 48 Переключатели 220 Переменные типа bool 199 Переменные типа int 199

Перо 166, 179, 211, 220, 285

геометрическое 179 Печать 354 Подменю 289 Поле 432 Поле со списком 223

Пользовательский интерфейс 295 Предварительный просмотр 354 Приложение

CBrushOne 187 CDaoRecordView 424 CPenOne 183 DocView 245 FourUp 88

LineTwo 159

PaintltGray 170

PaintORama 215 SDIOne 246 SuperSaver 188

Программа

MiniSketch 275, 364

PaintORama 194, 206

SquaresAndCircles 166

обработки прерываний 42

Проект LineOne 154

Прототип обработчика 284 Процедура обратного вызова 50 Прямая линия 319 Прямоугольник 319 Прямоугольник выделения 76

Р

Рабочая область 16 Регистрация класса 46 Редактор 14 Редактор меню 278

Редактор растровых изображений 68 Редактор ресурсов 14, 108 Режим отображения 175, 349 Режим рисования 187 Реляционная база данных 431, 440 Ресурс 90 Ресурсное представление 27

Ресурсы Windows 60

Рхитектура приложения 88

С

 

Свойства 403

 

Сериализация 334

 

События 43, 403

 

Сообщения 42

 

Списки 331

 

Статический текст

78

Статус активности

76

Стили окна 136

 

Стилизованные перья 220

Стиль

179

Строка

431

Строка состояния 295, 306 СУБД 432 Схема 432 Счетчик 195, 207

Т

Таблица 431 Табуляторы 149

Таймеры Windows 169

Тип данных bool 168 Точки 319

У

Удаление записей 422 Указатели 320 Управляющая переменная 125 Утилита 65

Ф

Фигуры 319 Формы 224 Функции API 46

Функции печати MFC 355 Функция

AddDocTemplate() 269 AddPoint() 262 CalculateWinnings() 131 CFourUpApp::InitInstance() 99 Close() 242

Create() 138 CreateObject() 270 CreateSolidBrush() 185 CreateWindow() 46

CSuperSaverApp::InitInstance()

189

CWnd::Create() 135 CWnd::lnvalidate() 162 DealCards() 130 DeflateRect() 200 DispatchMessage() 49

DoDataExchange() 103, 385, 390 DoModal() 288, 376, 391, 422 DPtoLP() 351

Draw() 320, 345

Drawltem() 314

Drawline() 174 DrawShape() 227, 241 DrawShapes() 225 EndDialog() 391 Fopen() 176

Fputc() 176 GetCharFormatSelection() 376 GetClientDC() 205 GetDlgltem() 200 GetFirstView() 261 GetMessage() 48 GetNextView() 261 GetRuntimeClass() 270 GetWindowRect() 200 InitInstance() 98, 100, 265 lnvalidate() 168

LineTo() 159 LoadStdProfileSettings() 267 LPtoDP() 351

Main() 41 MessageBox() 122 MoveTo() 158, 205 OnAppAbout() 265 OnAppExit() 272

OnBeginPrinting() 264, 355 OnBrushColor() 342 OnBrushcolor() 232 OnCancel() 122, 123, 391 OnCharEffects() 376 OnClearbtn() 243 OnDealCards() 124 OnDraw() 252, 277, 347 OnEditPasteDate() 387 OnEndPrinting() 264, 355

OnFormatFont() 375

OnInitDialog() 105, 169, 200,

220

OnLButtonDown() 203, 204, 222,

251,343

OnLButtonUp() 227, 344

OnMouseMove() 205, 226, 227,

344

OnNewFile() 405

OnOK() 391, 405

OnPaint() 107, 156, 233

OnPencolor() 220

OnPensColor() 287

OnPensWidth() 292

OnPrepareDC() 355

OnPreparePrinting() 264, 355

OnPrint() 355

OnQueryDragIcon() 108

OnSysCommand() 106

OnTimer() 170, 190

PaintBrushPreview() 233

PickRandomCard() 130

PlayMetaFile() 242

Printf() 174

PtlnRect() 204

Putch() 174

Putpixel() 174

Rectangle() 164

RegisterClass() 46

ScreenToClient() 200

Serialize() 335

SetDialogВkColor() 189

SetIcon() 130

SetPos() 211

SetRange() 211

SetRegistryKey() 268

ShowWindow() 47

TextOut() 176

TranslateMessage() 49

Update() 347

UpdateData() 390

WinMain() 45, 47, 53

WndProc() 45, 50, 53

Функция обратного вызова таймера

DBos 425

 

 

169

 

DDV

103

 

 

 

X

DDX

103

 

Хранитель экрана 188

Dialog Editor

65, 113

 

 

Ц

Dialog Toolbar

77

Цвет

179

 

DLL 22

 

 

 

 

 

Ш

DocView 245, 255

Шаблон документа 269

DOS 38

 

 

 

Ширина 179

Э

DSN

408

F

 

 

 

 

 

 

Элемент управления 65, 83, 89, 114,

FIFO

42

 

 

 

200

 

FourUp

88

 

CButton

89

 

 

 

 

G

CComboBox 90

GDI

40, 156

 

CEdit 90

GetStockObject() 178

CListbox 90

GUI

36, 274

 

CScrollBar 90

 

 

 

 

H

CStatic

89, 114

HTML

33, 457

IDC_CANVAS 200

 

 

 

 

I

Picture

83

IDE

13

 

 

 

Элементы управления ActiveX 398,

ISAM 410

 

 

445

Я

ISR

42

 

 

M

 

 

 

 

 

 

Язык структурированных запросов

MDI

18, 256

 

 

(SQL) 408

Menu Editor 278

 

 

 

MFC

22, 23, 36, 51, 52, 53

 

Иностранные термины

MiniSketch 364

 

 

A

MRU

21

 

 

ActiveX 381

 

MSDN

33

 

ADO

18

 

MSG

43

 

 

API

46

 

MVC

236

 

AppWizard

14, 20, 22, 30, 62, 154

 

 

 

 

N

AutoCompletion 33

NotePod

 

15, 22, 24, 28, 63

 

 

B

 

 

 

 

O

Bitmap Editor 68

ODBC

408, 410

 

 

C

OLE

18, 41

 

CEditView 24

OLE DB

428

 

ClassView 26

P Pascal

 

25

 

ClassWizard 30, 121, 125, 163, 210,

 

 

 

 

R

 

283, 402

RC-файл

108

 

COM 19, 41

 

Resource Editor 108

Control Toolbar 65

ResourceView 27

 

 

D

ResourceView (Ресурсное

DAO

408, 434

 

представление) 27

 

 

S

Web-броузер

457

 

SDI

17, 255

Web-страница

462z

SQL

408, 440

Window Styles

21

 

 

 

T

Windows

38, 39

 

Tip Wizard

14

Windows Message

43

Toolbar Editor 301

Windows Notepad

15

Ter

462

 

Winlnet 477

 

 

 

 

V

WizardBar

31

 

 

Visual C++

14, 408, 409

WordZilla

368, 383

 

 

W

 

 

 

 

Соседние файлы в предмете Программирование на C++