本書介紹了使用Visual C 開發Windows、Android和iOS等系統下應用軟件的基本方法。第1~3章介紹使用VC 開發Windows程序的基本原理和方法,第4~9章講授開發文檔及視圖程序的方法,第10章講授對話框的使用方法,第11~12章講授常見控件的使用方法,第13章講授創建和使用動態鏈接庫的方法,第14章講授使用進程和線程技術開發并行、并發程序的方法,第15章講授使用VC 2015提供的跨平臺開發技術開發Android、iOS及OS X程序的基本原理和方法。本書既可作為高等院校計算機及相關專業C 后續課程的教材或主要參考書,也可作為繼續教育或網絡培訓中的程序設計課程教材,同時也可供有關工程技術人員和計算機愛好者學習參考。
采用原理和實例相結合的方法系統講授VC 編程技術;講授使用VC 開發Windows、Android和iOS應用軟件的基本方法;手機游戲研發公司西幫網絡的多位軟件工程師參與編寫。
目 錄
出版說明
前言
第1章 VC 程序設計基礎1
1.1 Windows概述1
1.1.1 操作系統的發展歷史1
1.1.2 Windows的技術特點2
1.2 Windows程序特點3
1.2.1 程序組成3
1.2.2 數據類型5
1.2.3 匈牙利命名法6
1.2.4 窗口消息7
1.2.5 運行模式8
1.3 一個簡單的窗口程序9
1.3.1 開始之前9
1.3.2 WinMain()函數10
1.3.3 窗口函數14
1.4 上機步驟15
1.4.1 進入開發環境15
1.4.2 新建項目16
1.4.3 修改項目選項17
1.4.4 添加程序文件17
1.4.5 編輯程序18
1.4.6 添加源文件到項目18
1.4.7 調試運行19
1.5 增加窗口程序功能19
1.5.1 關閉窗口消息19
1.5.2 顯示信息窗口19
1.6 小結21
1.7 習題21
第2章 MFC程序設計基礎22
2.1 MFC概述22
2.1.1 MFC與應用程序框架22
2.1.2 MFC的組成22
2.1.3 MFC中的類23
2.2 MFC程序的特點24
2.2.1 概述24
2.2.2 MFC與消息處理24
2.2.3 運行模式24
2.3 一個簡單的MFC程序25
2.3.1 程序開始之前25
2.3.2 派生應用程序類26
2.3.3 派生窗口類26
2.3.4 建立窗口26
2.3.5 加入消息映射27
2.3.6 建立MFC應用程序對象28
2.4 上機步驟28
2.4.1 建立項目28
2.4.2 修改項目屬性29
2.4.3 調試運行29
2.5 功能擴展29
2.5.1 WM_SIZE消息30
2.5.2 AfxMessageBox()函數31
2.5.3 WM_LBUTTONDBCLK消息32
2.6 使用資源33
2.6.1 建立圖標資源33
2.6.2 在程序中使用圖標資源34
2.7 小結35
2.8 習題35
第3章 常用MFC通用類36
3.1 CPoint、CSize和CRect類36
3.1.1 CPoint類6
3.1.2 CSize類36
3.1.3 CRect類36
3.2 CString類37
3.2.1 創建字符串37
3.2.2 訪問字符串數據38
3.2.3 字符串的比較39
3.2.4 子串函數40
3.2.5 字符串處理函數41
3.2.6 應用實例42
3.3 集合類42
3.3.1 列表類CList42
3.3.2 數組類CArray45
3.3.3 映射類CMap47
3.3.4 應用實例48
3.4 時間處理類50
3.4.1 COleDateTime類50
3.4.2 COleDateTimeSpan類53
3.5 異常處理類55
3.5.1 異常處理類的使用55
3.5.2 MFC異常處理類簡介56
3.6 小結
3.7 習題
第4章 文檔視圖程序
4.1 概述
4.1.1 程序組成
4.1.2 程序分類
4.1.3 運行方式9
4.2 創建文檔視圖程序0
4.2.1 新建項目0
4.2.2 修改項目選項1
4.2.3 完成向導2
4.3 文檔視圖程序文件結構2
4.3.1 源文件2
4.3.2 資源文件63
4.4 文檔視圖框架程序分析63
4.4.1 頭文件3
4.4.2 應用程序類64
4.4.3 文檔類66
4.4.4 視圖類68
4.4.5 框架窗口類69
4.5 應用實例71
4.5.1 添加數據成員71
4.5.2 添加數據存取72
4.5.3 添加數據顯示73
4.5.4 添加數據排序74
4.6 小結75
4.7 習題75
第5章 繪圖輸出77
5.1 GDI與MFC77
5.1.1 概述77
5.1.2 設備環境類78
5.1.3 GDI對象類78
5.2 繪制圖形79
5.2.1 開始繪圖79
5.2.2 更改畫筆81
5.2.3 使用畫刷83
5.2.4 使用位圖84
5.3 輸出文本88
5.3.1 文本輸出函數88
5.3.2 更改文本顏色89
5.3.3 更改字形和字體90
5.4 坐標與坐標模式93
5.4.1 坐標模式94
5.4.2 MM_ANISOTROPIC坐標模式95
5.4.3 MM_ISOTROPIC坐標模式96
5.4.4 平移坐標97
5.4.5 修改坐標方向98
5.5 小結99
5.6 習題100
第6章 用戶輸入101
6.1 鼠標和鍵盤101
6.1.1 鼠標消息101
6.1.2 鍵盤消息104
6.2 使用菜單106
6.2.1 編輯菜單106
6.2.2 處理菜單命令108
6.2.3 修改菜單狀態109
6.2.4 使用菜單快捷鍵113
6.2.5 使用菜單加速鍵114
6.2.6 使用彈出式菜單116
6.3 小結118
6.4 習題118
第7章 工具欄與狀態欄119
7.1 工具欄119
7.2 處理工具欄命令120
7.2.1 工具欄按鈕狀態122
7.2.2 自定義工具欄123
7.3 狀態欄128
7.3.1 默認狀態欄128
7.3.2 操作狀態欄130
7.4 小結136
7.5 習題136
第8章 使用文件137
8.1 CFile類137
8.1.1 文件的建立、打開和關閉137
8.1.2 文件的讀與寫139
8.1.3 文件內容的定位與鎖定140
8.1.4 獲取并設置文件狀態141
8.2 序列化142
8.2.1 序列化的概念142
8.2.2 Serialize()函數142
8.2.3 CArchive類142
8.2.4 序列化應用實例145
8.3 文件管理148
8.3.1 文件操作148
8.3.2 目錄操作149
8.4 小結149
8.5 習題149
第9章 常用消息151
9.1 消息的分類151
9.2 系統消息151
9.2.1 WM_CREATE151
9.2.2 WM_CLOSE152
9.2.3 WM_QUERYENDSEESSION152
9.2.4 WM_DESTROY152
9.2.5 WM_NCDESTROY153
9.2.6 WM_TIMER153
9.2.7 WM_PAINT154
9.2.8 程序實例155
9.3 用戶自定義消息157
9.3.1 消息標識157
9.3.2 消息映射宏157
9.3.3 消息發送157
9.3.4 消息接收158
9.3.5 使用系統熱鍵消息159
9.3.6 使用進程間消息162
9.4 小結165
9.5 習題165
第10章 對話框166
10.1 概述166
10.2 對話框模板資源166
10.2.1 創建對話框模板資源166
10.2.2 編輯對話框模板屬性167
10.2.3 在對話框模板中添加或刪除控件
10.2.4 在對話框模板上調整控件169
10.2.5 修改控件的屬性169
10.2.6 設定控件跳格次序169
10.2.7 測試對話框模板資源169
10.3 對話框類170
10.3.1 模式對話框170
10.3.2 模式對話框實例170
10.3.3 非模式對話框171
10.3.4 非模式對話框實例171
10.4 自定義對話框173
10.4.1 建立模板資源173
10.4.2 建立CDialogEx派生類174
10.4.3 在對話框上繪圖75
10.4.4 為控件添加成員變量175
10.4.5 為控件添加消息映射176
10.4.6 使用CDialog派生類對象177
10.5 基于對話框的MFC程序177
10.5.1 建立項目178
10.5.2 應用程序類179
10.5.3 對話框窗口類180
10.6 通用對話框181
10.6.1 CFileDialog181
10.6.2 CColorDialog183
10.6.3 CFontDialog185
10.7 小結186
10.8 習題187
第11章 常用控件188
11.1 概述188
11.1.1 控件窗口樣式188
11.1.2 控件的通知消息188
11.1.3 控件類的成員函數188
11.1.4 控件的創建方式189
11.2 按鈕控件(BUTTON)189
11.2.1 按鈕控件的樣式189
11.2.2 按鈕控件的通知消息189
11.2.3 按鈕控件類的成員函數190
11.2.4 按鈕控件使用實例190
11.3 編輯框控件(EDITBOX)192
11.3.1 編輯框控件的樣式192
11.3.2 編輯框控件的通知消息193
11.3.3 編輯框控件類的成員函數193
11.3.4 編輯框控件使用實例193
11.4 靜態控件(STATIC)195
11.4.1 靜態控件的樣式195
11.4.2 靜態控件的通知消息196
11.4.3 靜態控件類的成員函數196
11.4.4 靜態控件使用實例196
11.5 修改控件的字體和顏色197
11.5.1 修改控件的字體197
11.5.2 修改控件的顏色198
11.6 復選框控件(CHECKBUTTON)
11.6.1 復選框控件的樣式200
11.6.2 復選框控件的通知消息200
11.6.3 復選框類成員函數200
11.6.4 復選框控件使用實例200
11.7 單選按扭控件(RADIOBUTTON)
11.7.1 單選按鈕控件的樣式
11.7.2 單選按鈕控件的通知消息
11.7.3 單選按鈕類的成員函數201
11.7.4 復選框控件和單選按鈕控件使用實例201
11.8 進程條控件(PROGRESS)202
11.8.1 進程條控件的樣式202
11.8.2 進程條控件的通知消息202
11.8.3 進程條類的成員函數202
11.8.4 進程條控件使用實例203
11.9 滑動條控件(SLIDER)204
11.9.1 滑動條控件的樣式204
11.9.2 滑動條控件的通知消息204
11.9.3 滑動條控件類的成員函數205
11.9.4 滑動條控件使用實例205
11.10 微調控件(SPIN)206
11.10.1 微調控件的樣式206
11.10.2 微調控件的通知消息206
11.10.3 微調控件類的成員函數207
11.10.4 微調控件使用實例207
11.11 組合框控件(COMBOBOX)
11.11.1 組合框控件的樣式209
11.11.2 組合框控件的通知消息209
11.11.3 組合框類的成員函數209
11.11.4 組合框控件使用實例210
11.12 小結211
11.13 習題211
第12章 使用樹控件和列表控件213
12.1 圖像列表213
12.1.1 建立圖像列表213
12.1.2 圖像列表的操作214
12.2 樹控件215
12.2.1 概述215
12.2.2 樹控件的創建215
12.2.3 樹控件的操作219
12.3 列表控件221
12.3.1 概述221
12.3.2 列表控件的創建222
12.3.3 列表控件的操作226
12.4 小結229
12.5 習題229
第13章 動態鏈接庫230
13.1 概述230
13.2 創建標準Win32動態庫231
13.2.1 新建Win32動態庫項目231
13.2.2 添加函數233
13.2.3 添加類233
13.2.4 導出函數234
13.2.5 導出類234
13.2.6 生成DLL234
13.2.7 查看DLL中的導出函數234
13.3 創建標準MFC動態庫235
13.3.1 新建MFC動態庫項目235
13.3.2 添加函數236
13.3.3 添加類238
13.3.4 導出函數239
13.3.5 導出類239
13.3.6 生成DLL240
13.3.7 查看DLL中的導出函數240
13.4 在程序中使用動態庫240
13.4.1 加載 DLL的方式240
13.4.2 使用隱式加載241
13.4.3 使用顯式加載242
13.5 與其他程序設計語言共享DLL247
13.5.1 共享DLL給其他程序設計語言247
13.5.2 調用其他語言開發的DLL248
13.6 小結248
13.7 習題248
第14章 使用多任務250
14.1 進程250
14.1.1 進程的優先級250
14.1.2 啟動進程50
14.1.3 進程的管理253
14.2 線程260
14.2.1 線程的優先級260
14.2.2 線程的創建和終止260
14.2.3 工作者線程實例261
14.2.4 使用用戶接口線程264
14.3 進程與線程間的同步267
14.3.1 等待函數268
14.3.2 使用事件CEvent269
14.3.3 使用臨界段CCriticalSection270
14.3.4 使用互斥量CMutex272
14.3.5 使用信號量CSemaphore273
14.4 小結274
14.5 習題275
第15章 手機開發基礎276
15.1 概述276
15.2 第一個手機程序276
15.2.1 開始之前276
15.2.2 創建手機程序277
15.2.3 通過模擬器運行手機程序279
15.2.4 發布到手機279
15.2.5 在手機屏幕上繪圖280
15.2.6 處理手機觸屏輸入283
15.3 Cocos2d-x程序設計基礎284
15.3.1 開發步驟285
15.3.2 配置開發環境285
15.3.3 創建跨平臺項目289
15.3.4 運行模式290
15.3.5 生成Windows程序291
15.3.6 生成Android程序292
15.3.7 生成iOS程序293
15.3.8 跨平臺開發初步294
15.4 小結297
15.5 習題297
附錄298