本書以Visual C++ 6.0中文版為平臺,直接從Windows編程入手,系統地介紹了Visual C++編程基礎和應用技術。內容包括Windows編程基礎、對話框、常用控件、菜單、工具欄、狀態欄、框架窗口、文檔、視圖、圖形、文本、打印、數據庫編程,以及Visual C++高級應用。附錄部分包括C++主要知識點、程序調試和常用操作方法。
本書體現較強的應用特色,適合作為大學本科、高職高專等各類高等學校的教材,也可作為Visual C++的各類培訓和用戶學習參考用書。
以Visual C++ 6.0中文版為平臺,直接從Windows編程入手,系統介紹Visual C++編程基礎和應用技術。內容包括Windows編程基礎、對話框、常用控件、框架窗口、文檔和視圖、菜單、工具欄和狀態欄、圖形、文本和打印、數據庫編程、和Visual C++高級應用。附錄包括C++主要知識點、程序調試和常用操作方法。
本書體現很強的應用特色,通過教程的學習和實驗、實習實訓,基本具備用Visual C++開發小規模應用系統的能力。
本教程以“教程就是服務”的理念,總結近年來作者的教學和開發實踐,詳略結合,突出基本。既汲取現有教材中的合理的內容,又對主要內容的介紹有所創新。
本教程可作為普通高等學校、高職高專、軟件職業技術學院等各類學校的教材,也可作Visual C++培訓和用戶自學參考。
書在第2版的基礎上對各章的內容進行梳理,增加了從C→C++→Windows SDK→MFC的解析細節,刪除了第5章的“建立可序列化的類”以及第8章的“媒體控制接口”和“使用MCIWnd窗口類”內容,同時對晦澀、重復以及錯誤的內容進行調整和更正。
本書配套的教學資源可以在清華大學出版社網站http://www. tup.com.cn免費下載。
本教程不僅適合于教學,也非常適合于Visual C++的各類培訓以及用Visual C++開發應用程序的用戶學習和參考。
本書由南京師范大學丁有和編寫,南京師范大學鄭阿奇統編、定稿。參加本書編寫的還有梁敬東、曹弋、鄭進、劉中、劉金定、姜寧秋、劉懷、吳明祥、劉建等。
由于作者水平有限,不當之處在所難免,懇請讀者批評指正。
作 者
2016年3月
鄭阿奇,東南大學畢業,南京師范大學計算機科學與技術學院副教授,東南大學本科畢業,曾獲選南京師范大學教學名師培養人選。主編5套計算機系列教材,獲國家教委優秀教材二等獎、電子工業部優秀教材二等獎、兩次獲江蘇省優秀教學成果二等獎、江蘇省暢銷圖書編輯二等獎、全國高校出版社暢銷書二等獎、兩次獲南京師范大學優秀教學成果一等獎、南京師范大學精品教材一等獎。參加主持國家“七五”攻關子項目、江蘇省科技開發項目,主持南京市科技開發項目、泰州市科委項目、金陵石化公司項目,獲江蘇省優秀軟件獎,江蘇省科技進步獎、南京市創新成果獎。獲國家發明專利和實用新型專利20多個。
第1章 Windows編程基礎 1
1.1 從main到WinMain 1
1.1.1 Windows等價程序 2
1.1.2 頭文件 5
1.1.3 程序入口函數 5
1.1.4 MessageBox函數 6
1.2 窗口和消息 7
1.2.1 程序框架代碼 7
1.2.2 注冊窗口類 9
1.2.3 創建和顯示窗口 11
1.2.4 消息和消息處理 11
1.2.5 WM_PAINT消息 13
1.2.6 Windows基本數據類型 14
1.3 C++的類 16
1.3.1 類和對象 16
1.3.2 構造函數和析構函數 19
1.3.3 new和delete 22
1.3.4 this指針 23
1.3.5 繼承和派生 25
1.3.6 虛函數 27
1.4 MFC編程 29
1.4.1 MFC概述 29
1.4.2 MFC程序框架 30
1.4.3 程序運行機制 31
1.4.4 消息映射 32
1.5 MFC應用程序框架 33
1.5.1 MFC應用程序類型 33
1.5.2 文檔應用程序創建 34
1.5.3 項目文件和項目配置 37
1.5.4 項目管理和類結構 38
1.5.5 OnDraw和消息添加 40
1.6 總結與提高 42
第2章 對話框 44
2.1 創建對話框 44
2.1.1 創建對話框應用程序 44
2.1.2 添加并創建對話框 46
2.2 設計對話框 49
2.2.1 設置對話框屬性 49
2.2.2 添加和布局控件 50
2.2.3 分組和刻蝕線 53
2.2.4 WM_INITDIALOG消息 55
2.3 使用對話框 56
2.3.1 在程序中使用 56
2.3.2 DoModal和模式對話框 59
2.3.3 通用對話框 60
2.3.4 消息對話框 62
2.4 總結與提高 63
第3章 常用控件 65
3.1 創建和使用控件 65
3.1.1 控件的創建方法 65
3.1.2 控件的消息及消息映射 68
3.1.3 控件類和控件對象 71
3.1.4 DDX和DDV 73
3.2 靜態控件和按鈕 75
3.2.1 靜態控件 75
3.2.2 按鈕 75
3.2.3 示例:制作問卷調查 76
3.3 編輯框和旋轉按鈕控件 79
3.3.1 編輯框的屬性和通知消息 80
3.3.2 編輯框的基本操作 81
3.3.3 旋轉按鈕控件 82
3.3.4 用對話框輸入學生成績示例 83
3.4 列表框 86
3.4.1 列表框的風格和消息 87
3.4.2 列表框的基本操作 88
3.4.3 創建并使用城市郵政編碼對話框示例 90
3.5 組合框 93
3.5.1 組合框的風格類型和消息 93
3.5.2 組合框常見操作 95
3.5.3 創建并使用城市郵政編碼和區號對話框示例 96
3.6 進展條、滾動條和滑動條 99
3.6.1 進展條 99
3.6.2 滾動條 103
3.6.3 滑動條 104
3.6.4 調整對話框背景顏色示例 106
3.7 日期時間控件 108
3.8 列表控件和樹控件 112
3.8.1 圖像列表控件 112
3.8.2 列表控件 113
3.8.3 樹控件 121
3.9 總結與提高 127
第4章 菜單、工具欄和狀態欄 129
4.1 菜單 129
4.1.1 菜單一般規則 129
4.1.2 更改并切換應用程序菜單 129
4.1.3 使用鍵盤快捷鍵 132
4.1.4 菜單的編程控制 133
4.1.5 使用快捷菜單 137
4.2 工具欄 138
4.2.1 使用工具欄編輯器 138
4.2.2 工具按鈕和菜單項相結合 140
4.2.3 多個工具欄的使用 140
4.3 狀態欄 143
4.3.1 狀態欄的定義 143
4.3.2 狀態欄的常用操作 144
4.3.3 改變狀態欄的風格 145
4.4 總結與提高 146
第5章 框架窗口、文檔和視圖 149
5.1 框架窗口 149
5.1.1 主框架窗口和文檔窗口 149
5.1.2 框架窗口初始狀態的改變 150
5.1.3 窗口樣式 151
5.1.4 窗口樣式設置 152
5.1.5 改變窗口大小和位置 154
5.2 文檔模板 155
5.2.1 文檔模板類 155
5.2.2 文檔模板字符串資源 157
5.2.3 使用多個文檔類型 157
5.3 文檔序列化 161
5.3.1 文檔序列化過程 161
5.3.2 CArchive類和序列化操作 163
5.3.3 使用簡單數組集合類 166
5.3.4 使用CFile類 169
5.3.5 CFile和CArchive類之間的關聯 173
5.4 視圖應用框架 173
5.4.1 一般視圖框架 173
5.4.2 列表視圖框架 179
5.4.3 樹視圖框架 183
5.5 文檔視圖結構 186
5.5.1 文檔與視圖的相互作用 186
5.5.2 應用程序對象指針的互調 188
5.5.3 切分窗口 189
5.5.4 一檔多視 193
5.6 總結與提高 199
第6章 圖形、文本和打印 201
6.1 概述 201
6.1.1 設備環境類 201
6.1.2 坐標映射 202
6.1.3 CPoint、CSize和CRect 203
6.1.4 顏色和顏色對話框 206
6.2 圖形設備接口 207
6.2.1 使用GDI對象 207
6.2.2 畫筆 209
6.2.3 畫刷 210
6.2.4 位圖 211
6.3 圖形繪制 213
6.3.1 畫點、線 213
6.3.2 矩形和多邊形 215
6.3.3 曲線 216
6.3.4 在視圖中繪制圖形示例 218
6.3.5 在對話框及控件中繪圖 220
6.4 字體與文字處理 222
6.4.1 字體和字體對話框 222
6.4.2 常用文本輸出函數 225
6.4.3 文本格式化屬性 227
6.4.4 計算字符的幾何尺寸 228
6.4.5 文檔內容顯示及其字體改變 229
6.5 圖標和光標 231
6.5.1 圖像編輯器 231
6.5.2 圖標 233
6.5.3 光標 236
6.6 打印與打印預覽 239
6.6.1 打印與打印預覽機制 239
6.6.2 打印與打印預覽的設計 241
6.6.3 完整的示例 246
6.7 總結與提高 250
第7章 數據庫編程 253
7.1 概述 253
7.1.1 數據模型 253
7.1.2 SQL接口和常用語句 254
7.1.3 ODBC、DAO和OLE DB 257
7.1.4 ADO技術 257
7.2 MFC ODBC一般操作 257
7.2.1 MFC ODBC使用過程 258
7.2.2 ODBC數據表綁定更新 263
7.2.3 MFC的ODBC類 264
7.3 MFC ODBC常用編程 267
7.3.1 顯示記錄總數和當前記錄號 268
7.3.2 編輯記錄 269
7.3.3 字段操作 273
7.3.4 多表處理 276
7.4 ADO數據庫編程 281
7.4.1 ADO編程的一般過程 282
7.4.2 Recordset對象使用 285
7.4.3 Command對象使用 288
7.5 數據庫相關的ActiveX控件 288
7.5.1 使用MSFlexGrid控件 289
7.5.2 RemoteData和DBGrid控件 291
7.6 總結與提高 292
第8章 高級應用 295
8.1 圖像控件和OpenGL 295
8.1.1 常用圖像控件 295
8.1.2 使用OpenGL 297
8.2 動態鏈接庫 301
8.2.1 DLL概念和Visual C++的支持 301
8.2.2 動態鏈接庫的創建 302
8.2.3 動態鏈接庫的訪問 304
8.3 ActiveX控件 306
8.3.1 創建ActiveX控件 306
8.3.2 測試和使用ActiveX控件 313
8.4 總結與提高 316
附錄 317
附錄A Visual C++編程常用操作 317
附錄B 程序簡單調試 321
附錄C C++基本知識點 325
C.1 C++程序結構 325
C.2 標識符和數據類型 326
C.3 運算符和表達式 330
C.4 基本語句 334
C.5 函數 336
C.6 指針和引用 338
C.7 cout和cin 339
C.8 預處理 340
C.9 類和對象 342
C.10 繼承和派生 345
C.11 多態和虛函數 347
C.12 基本異常處理 348