內容簡介
本書循序漸進、系統地介紹了VC++軟體開發技術。本書包含13章,介紹了C++數據類型、運算符、數組、指針、字元串、函式模板、類和對象、
標準模板庫、Windows窗體編程、MDI設計、對話框編程、MFC文檔和視圖、MFC繪圖技術、運算元據庫和
組件對象模型,以及COM編程等。全書通過實際問題和解答的形式,達到理論和實踐相結合的目的,從而更加深刻地鞏固了讀者所學習的知識,使讀者更好地進行開發實踐。本書適合VC++初學者以及在校學生、程式設計愛好者、各大中專院校的在校學生以及相關授課老師使用閱讀。
圖書目錄
第1章 C++基礎語法 1
1.1 C++的變數 1
1.1.1 問題描述 1
1.1.2 解決方法 1
1.1.3 知識擴展——聲明和初始化變數 1
1.1.4 觸類旁通 2
1.2 C++數據類型 3
1.2.1 問題描述 3
1.2.2 解決方法 3
1.2.3 知識擴展——C++數據類型 3
1.2.4 觸類旁通 5
1.2.5 網路課堂 6
1.3.1 問題描述 6
1.3.2 解決方法 6
1.3.3 知識擴展——自增和自減 6
1.3.4 觸類旁通 7
1.3.5 網路課堂 8
1.4 類型轉換 8
1.4.1 問題描述 8
1.4.2 解決方法 8
1.4.3 知識擴展——類型轉換機制 9
1.4.4 觸類旁通 10
1.4.5 網路課堂 10
1.5 賦值不是等於 11
1.5.1 問題描述 11
1.5.2 解決方法 11
1.5.3 知識擴展——組合運算符 12
1.5.4 觸類旁通 12
1.5.5 網路課堂 13
1.6.1 問題描述 13
1.6.2 解決方法 13
1.6.3 知識擴展——邏輯運算與
按位運算 14
1.6.4 觸類旁通 16
1.6.5 網路課堂 16
1.7 C++中運算符優先權 16
1.7.1 問題描述 16
1.7.2 解決方法 16
1.7.3知識擴展——運算符的優先權 16
1.7.4觸類旁通 17
1.7.5網路課堂 18
1.8命名空間 18
1.8.1問題描述 18
1.8.2解決方法 18
1.8.3知識擴展——命名空間 18
1.8.4觸類旁通 20
1.8.5網路課堂 20
1.9C++/CLI的數據類型 20
1.9.1問題描述 20
1.9.2解決方法 21
1.9.3知識擴展——C++/CLI特有的
數據類型 21
1.9.4網路課堂 22
1.10C++/CLI的輸出輸入 22
1.10.1問題描述 22
1.10.2解決方法 22
1.10.3知識擴展——C++/CLI的
輸出、輸入 23
1.10.4網路課堂 24
第2章控制語句 25
2.1C++中if語句的使用 25
2.1.1問題描述 25
2.1.2解決方法 25
2.1.3知識擴展——基本if語句語法 26
2.1.4觸類旁通 28
2.1.5網路課堂 28
2.2if語句嵌套問題 28
2.2.1問題描述 28
2.2.2解決方法 29
2.2.3知識擴展——嵌套if語句 30
2.2.4觸類旁通 31
2.2.5網路課堂 33
2.3.1問題描述 33
2.3.2解決方法 33
2.3.3知識擴展——條件運算符 34
2.3.4觸類旁通 35
2.3.5網路課堂 35
2.4switch語句的使用 35
2.4.1問題描述 35
2.4.2解決方法 36
2.4.3知識擴展——switch語句 36
2.4.4觸類旁通 37
2.4.5網路課堂 38
2.5運用for循環解決組合問題 39
2.5.1問題描述 39
2.5.2解決方法 39
2.5.3知識擴展——for循環語句 40
2.5.4觸類旁通 41
2.5.5網路課堂 42
2.6使用while循環求1到n的整數和 42
2.6.1問題描述 42
2.6.2解決方法 43
2.6.3知識擴展——while循環語句 43
2.6.4觸類旁通 44
2.6.5網路課堂 44
2.7do…while和while語句 45
2.7.1問題描述 45
2.7.2解決方法 45
2.7.3知識擴展——do…while
循環語句 45
2.7.4觸類旁通 45
2.7.5網路課堂 46
2.8break和continue語句 46
2.8.1問題描述 46
2.8.2解決方法 47
2.8.3知識擴展——break跳轉語句 47
2.8.4知識擴展——continue跳轉語句 48
2.8.5觸類旁通 49
2.8.6網路課堂 49
2.9C++/CLI中的控制語句 50
2.9.1問題描述 50
2.9.2解決方法 50
2.9.3知識擴展——foreach循環 50
2.9.4網路課堂 51
第3章數組、指針和字元串 52
3.1C++中的數組 52
3.1.1問題描述 52
3.1.2解決方法 52
3.1.3知識擴展——聲明數組 52
3.1.4網路課堂 53
3.2訪問C++數組問題 53
3.2.1問題描述 53
3.2.2解決方法 53
3.2.3知識擴展——初始化數組 53
3.2.4觸類旁通 55
3.2.5網路課堂 55
3.3C++字元數組與字元串 56
3.3.1問題描述 56
3.3.2解決方法 56
3.3.3知識擴展——字元數組和
字元串 56
3.3.4觸類旁通 57
3.3.5網路課堂 57
3.4矩陣的倒置問題 57
3.4.1問題描述 57
3.4.2解決方法 57
3.4.3知識擴展——多維數組 58
3.4.4觸類旁通 60
3.4.5網路課堂 61
3.5C++中的指針 61
3.5.1問題描述 61
3.5.2解決方法 61
3.5.3知識擴展——指針的使用 62
3.5.4觸類旁通 63
3.5.5網路課堂 64
3.6最容易混淆的指針——常量指針與
指向常量的指針 64
3.6.1問題描述 64
3.6.2解決方法 65
3.6.3知識擴展——常量指針和指
向常量的指針 65
3.6.4知識擴展——const_cast運算符 66
3.6.5觸類旁通 66
3.6.6網路課堂 67
3.7指針和數組的關係 67
3.7.1問題描述 67
3.7.2解決方法 67
3.7.3知識擴展——指針的算術運算 67
3.7.4觸類旁通 69
3.7.5網路課堂 69
3.8指向多維數組的指針 69
3.8.1問題描述 69
3.8.2解決方法 70
3.8.3知識擴展——使用指針
處理多維數組 70
3.8.4觸類旁通 70
3.8.5網路課堂 71
3.9動態記憶體分配 71
3.9.1問題描述 71
3.9.2解決方法 71
3.9.3知識擴展——new和delete
運算符 72
3.9.4觸類旁通 72
3.9.5網路課堂 73
3.10.1問題描述 73
3.10.2解決方法 73
3.10.3知識擴展——為數組動態
分配記憶體 74
3.10.4觸類旁通 75
3.10.5網路課堂 76
3.11引用與指針的區別 76
3.11.1問題描述 76
3.11.2解決方法 76
3.11.3知識擴展——使用引用 76
3.11.4觸類旁通 77
3.11.5網路課堂 77
3.12C++標準字元串 77
3.12.1問題描述 77
3.12.2解決方法 77
3.12.3知識擴展——string類 78
3.12.4觸類旁通 78
3.12.5網路課堂 80
3.13C++/CLI中的指針——跟蹤句柄 80
3.13.1問題描述 80
3.13.2解決方法 80
3.13.3知識擴展——跟蹤句柄 80
3.13.4觸類旁通 81
3.13.5網路課堂 81
3.14C++/CLI中的數組 82
3.14.1問題描述 82
3.14.2解決方法 82
3.14.3知識擴展——CLR數組 83
3.14.4知識擴展——Array類 84
3.14.5觸類旁通 84
3.14.6網路課堂 84
3.15C++/CLI中的多維數組 85
3.15.1問題描述 85
3.15.2解決方法 85
3.15.3知識擴展——CLR多維數組 86
3.15.4網路課堂 86
3.16C++/CLI數組的數組 86
3.16.1問題描述 86
3.16.2解決方法 87
3.16.3知識擴展——CLR數組的數組 87
3.16.4觸類旁通 87
3.16.5網路課堂 88
3.17C++/CLI中的字元串 88
3.17.1問題描述 88
3.17.2解決方法 88
3.17.3知識擴展——String類 89
3.17.4觸類旁通 90
3.18內部指針 90
3.18.1問題描述 90
3.18.2解決方法 91
3.18.3知識擴展——內部指針
interior_ptr 91
3.18.4網路課堂 91
第4章函式 92
4.1理解函式 92
4.1.1問題描述 92
4.1.2解決方法 92
4.1.3知識擴展——函式的定義 92
4.1.4知識擴展——函式的聲明 93
4.1.5觸類旁通 94
4.1.6網路課堂 95
4.2函式的參數傳遞 95
4.2.1問題描述 95
4.2.2解決方法 96
4.2.3知識擴展——實參傳給形參
的方式 96
4.2.4觸類旁通 98
4.2.5網路課堂 100
4.3向函式傳遞數組 100
4.3.1問題描述 100
4.3.2解決方法 101
4.3.3知識擴展——給函式傳遞數組 102
4.3.4觸類旁通 104
4.3.5網路課堂 105
4.4函式的返回值 105
4.4.1問題描述 105
4.4.2解決方法 106
4.4.3知識擴展——從函式返回值 106
4.4.4觸類旁通 107
4.4.5網路課堂 108
4.5變數的作用域與生存期 108
4.5.1問題描述 108
4.5.2解決方法 108
4.5.3知識擴展——變數的作用域 109
4.5.4知識擴展——變數的生存期 110
4.5.5觸類旁通 111
4.5.6網路課堂 112
4.6函式的遞歸調用 113
4.6.1問題描述 113
4.6.2解決方法 113
4.6.3知識擴展——遞歸函式調用 114
4.6.4觸類旁通 114
4.6.5網路課堂 115
4.7函式的默認參數 115
4.7.1問題描述 115
4.7.2解決方法 116
4.7.3知識擴展——函式的默認
參數值 116
4.7.4觸類旁通 117
4.7.5網路課堂 118
4.8函式重載 118
4.8.1問題描述 118
4.8.2解決方法 118
4.8.3知識擴展——函式的重載 119
4.8.4觸類旁通 120
4.8.5網路課堂 120
4.9函式模板 120
4.9.1問題描述 120
4.9.2解決方法 121
4.9.3知識擴展——函式模板 122
4.9.4觸類旁通 123
4.9.5網路課堂 124
第5章自定義數據類型 125
5.1使用枚舉類型 125
5.1.1問題描述 125
5.1.2解決方法 126
5.1.3知識擴展——使用枚舉類型 127
5.1.4觸類旁通 127
5.1.5網路課堂 128
5.2C++中的結構 128
5.2.1問題描述 128
5.2.2解決方法 128
5.2.3知識擴展——結構的套用 129
5.2.4觸類旁通 130
5.2.5網路課堂 131
5.3聯合類型 131
5.3.1問題描述 131
5.3.2解決方法 132
5.3.3知識擴展——聯合的使用 132
5.3.4網路課堂 133
5.4定義一個表示複數的類 133
5.4.1問題描述 133
5.4.2解決方法 133
5.4.3知識擴展——定義類與創建
類的對象 134
5.4.4網路課堂 135
5.5成員函式定義的位置 135
5.5.1問題描述 135
5.5.2解決方法 136
5.5.3知識擴展——內聯函式和外部
定義函式 136
5.5.4觸類旁通 137
5.5.5網路課堂 137
5.6類的構造函式 138
5.6.1問題描述 138
5.6.2解決方法 139
5.6.3知識擴展——構造函式 139
5.6.4觸類旁通 140
5.6.5網路課堂 142
5.7this指針 142
5.7.1問題描述 142
5.7.2解決方法 143
5.7.3知識擴展——this指針 143
5.7.4觸類旁通 144
5.7.5網路課堂 145
5.8類的const對象 145
5.8.1問題描述 145
5.8.2解決方法 145
5.8.3知識擴展——const對象 145
5.8.4觸類旁通 146
5.8.5網路課堂 147
5.9類的靜態成員 147
5.9.1問題描述 147
5.9.2解決方法 147
5.9.3知識擴展——類的靜態成員 148
5.9.4觸類旁通 149
5.9.5網路課堂 149
5.10類的析構函式 150
5.10.1問題描述 150
5.10.2解決方法 151
5.10.3知識擴展——析構函式 151
5.10.4觸類旁通 152
5.10.5網路課堂 153
5.11複製對象 153
5.11.1問題描述 153
5.11.2解決方法 154
5.11.3知識擴展——複製構造函式 154
5.11.4知識擴展——重載運算符 155
5.11.5觸類旁通 156
5.11.6網路課堂 158
5.12C++/CLI枚舉 158
5.12.1問題描述 158
5.12.2解決方法 159
5.12.3知識擴展——C++/CLI中
的枚舉 159
5.12.4網路課堂 160
5.13C++/CLI數值類 160
5.13.1問題描述 160
5.13.2解決方法 161
5.13.3知識擴展——C++/CLI
數值類 161
5.13.4網路課堂 163
5.14C++/CLI引用類 163
5.14.1問題描述 163
5.14.2解決方法 164
5.14.3知識擴展——C++/CLI
引用類 164
5.14.4網路課堂 166
第6章面向對象的關鍵技術 167
6.1類模板 167
6.1.1問題描述 167
6.1.2解決方法 167
6.1.3知識擴展——定義類模板 168
6.1.4觸類旁通 172
6.1.5網路課堂 174
6.2繼承問題 174
6.2.1問題描述 174
6.2.2解決方法 174
6.2.3知識擴展——理解類的繼承 175
6.2.4觸類旁通 176
6.2.5網路課堂 177
6.3繼承方式 177
6.3.1問題描述 177
6.3.2解決方法 178
6.3.3知識擴展——繼承方式 178
6.3.4觸類旁通 179
6.3.5網路課堂 180
6.4派生類的複製構造函式 180
6.4.1問題描述 180
6.4.2解決方法 182
6.4.3知識擴展——派生類的複製
構造函式 182
6.4.4觸類旁通 183
6.4.5網路課堂 183
6.5友元的使用 184
6.5.1問題描述 184
6.5.2解決方法 184
6.5.3知識擴展——友元 185
6.5.4觸類旁通 186
6.5.5網路課堂 186
6.6在相關的類類型之間轉換 187
6.6.1問題描述 187
6.6.2解決方法 187
6.6.3知識擴展——類與類之間轉換 188
6.6.4觸類旁通 189
6.6.5網路課堂 191
6.7虛函式 191
6.7.1問題描述 191
6.7.2解決方法 193
6.7.3知識擴展——虛函式 194
6.7.4觸類旁通 196
6.7.5網路課堂 198
6.8純虛函式 198
6.8.1問題描述 198
6.8.2解決方法 199
6.8.3知識擴展——純虛函式 199
6.8.4觸類旁通 199
6.8.5網路課堂 199
6.9抽象類 200
6.9.1問題描述 200
6.9.2解決方法 200
6.9.3知識擴展——抽象類 201
6.9.4觸類旁通 201
6.9.5網路課堂 202
6.10C++/CLI中的裝箱與拆箱 202
6.10.1問題描述 202
6.10.2解決方法 202
6.10.3知識擴展——裝箱和拆箱 202
6.10.4網路課堂 203
6.11C++/CLI類的繼承 203
6.11.1問題描述 203
6.11.2解決方法 204
6.11.3知識擴展——類的繼承 205
6.11.4網路課堂 206
6.12接口 206
6.12.1問題描述 206
6.12.2解決方法 207
6.12.3知識擴展——定義接口 207
6.12.4知識擴展——實現接口 208
6.12.5網路課堂 208
6.13泛型類 208
6.13.1問題描述 208
6.13.2解決方法 209
6.13.3知識擴展——定義泛型類 210
6.13.4知識擴展——泛型集合類 211
6.13.5觸類旁通 212
6.13.6網路課堂 212
7.1.1問題描述 213
7.1.2解決方法 213
7.1.3知識擴展——標準模板庫
的定義 213
7.1.4網路課堂 215
7.2矢量容器 215
7.2.1問題描述 215
7.2.2解決方法 216
7.2.3知識擴展——vector<T>容器 216
7.2.4觸類旁通 218
7.2.5網路課堂 219
7.3C++中矢量容器中如何存放自己的
類對象? 219
7.3.1問題描述 219
7.3.2解決方法 219
7.3.3知識擴展——在矢量容器中
存儲類對象 220
7.3.4觸類旁通 222
7.3.5網路課堂 222
7.4如何從前端添加數據 223
7.4.1問題描述 223
7.4.2解決方法 223
7.4.3知識擴展——雙端佇列容器 223
7.4.4網路課堂 223
7.5列表容器 223
7.5.1問題描述 223
7.5.2解決方法 224
7.5.3知識擴展——列表容器 224
7.5.4觸類旁通 225
7.5.5網路課堂 226
7.6如何使用映射容器? 226
7.6.1問題描述 226
7.6.2解決方法 226
7.6.3知識擴展——映射容器 229
7.6.4知識擴展——多重映射 231
7.6.5觸類旁通 232
7.6.6網路課堂 233
7.7佇列容器 233
7.7.1問題描述 233
7.7.2解決方法 233
7.7.3知識擴展——佇列容器 233
7.7.4觸類旁通 234
7.7.5網路課堂 234
7.8優先權佇列容器 234
7.8.1問題描述 234
7.8.2解決方法 234
7.8.3知識擴展——優先權佇列容器 237
7.8.4觸類旁通 237
7.8.5網路課堂 238
7.9堆疊容器 238
7.9.1問題描述 238
7.9.2解決方法 238
7.9.3知識擴展——堆疊容器 238
7.9.4網路課堂 239
7.10疊代器 239
7.10.1問題描述 239
7.10.2解決方法 239
7.10.3知識擴展——疊代器 240
7.10.4觸類旁通 240
7.10.5網路課堂 241
7.11函式對象 241
7.11.1問題描述 241
7.11.2解決方法 241
7.11.3知識擴展——什麼是函式
對象 242
7.11.4知識擴展——STL提供的
函式對象 244
7.11.5網路課堂 244
7.12算法 245
7.12.1問題描述 245
7.12.2解決方法 246
7.12.3知識擴展——算法 246
7.12.4觸類旁通 248
7.12.5網路課堂 248
7.13託管環境下能使用STL嗎? 249
7.13.1問題描述 249
7.13.2解決方法 249
7.13.3知識擴展——STL/CLR 249
7.13.4網路課堂 249
第8章創建Windows應用程式 250
8.1Window的數據類型 250
8.1.1問題描述 250
8.1.2解決方法 250
8.1.3知識擴展——Windows的
數據類型 250
8.1.4觸類旁通 251
8.1.5網路課堂 252
8.2如何創建視窗? 252
8.2.1問題描述 252
8.2.2解決方法 252
8.2.3知識擴展——MFC類與
WindowsAPI 253
8.2.4網路課堂 253
8.3認識SDI應用程式 254
8.3.1問題描述 254
8.3.2解決方法 254
8.3.3知識擴展——SDI應用程式 254
8.3.4網路課堂 261
8.4Windows系統的訊息 261
8.4.1問題描述 261
8.4.2解決方法 261
8.4.3知識擴展——Windows的
訊息處理 262
8.4.4觸類旁通 263
8.4.5網路課堂 264
8.5滑鼠訊息 264
8.5.1問題描述 264
8.5.2解決方法 264
8.5.3知識擴展——處理滑鼠訊息 265
8.5.4觸類旁通 268
8.5.5網路課堂 270
8.6非客戶滑鼠訊息 270
8.6.1問題描述 270
8.6.2解決方法 271
8.6.3知識擴展——處理非客戶區的
滑鼠訊息 271
8.6.4觸類旁通 272
8.6.5網路課堂 273
8.7如何改變游標的顯示 273
8.7.1問題描述 273
8.7.2解決方法 273
8.7.3知識擴展——修改游標 273
8.7.4觸類旁通 274
8.7.5網路課堂 274
8.8限制滑鼠移動 274
8.8.1問題描述 274
8.8.2解決方法 275
8.8.3知識擴展——限制滑鼠移動 275
8.8.4網路課堂 275
8.9如何移動輸入焦點 276
8.9.1問題描述 276
8.9.2解決方法 276
8.9.3知識擴展——輸入焦點 277
8.9.4觸類旁通 277
8.9.5網路課堂 277
8.10按鍵訊息 278
8.10.1問題描述 278
8.10.2解決方法 278
8.10.3知識擴展——處理按鍵訊息 278
8.10.4觸類旁通 279
8.10.5網路課堂 280
8.11在回響鍵盤訊息時如何區分字元
大小寫? 280
8.11.1問題描述 280
8.11.2解決方法 280
8.11.3知識擴展——字元訊息 280
8.11.4觸類旁通 281
8.11.5網路課堂 281
8.12如何使用定時器? 281
8.12.1問題描述 281
8.12.2解決方法 282
8.12.3知識擴展——使用定時器 282
8.12.4網路課堂 283
8.13如何定義自己的訊息? 283
8.13.1問題描述 283
8.13.2解決方法 284
8.13.3知識擴展——處理自定義
訊息 284
8.13.4觸類旁通 285
8.13.5網路課堂 285
8.14理解WindowForms 285
8.14.1問題描述 285
8.14.2解決方法 285
8.14.3知識擴展——WindowsForms
程式 286
8.14.4網路課堂 288
8.15處理WindowForms事件 288
8.15.1問題描述 288
8.15.2解決方法 288
8.15.3知識擴展——事件與委託 289
8.15.4觸類旁通 291
8.15.5網路課堂 292
第9章對話框和控制項 293
9.1.1問題描述 293
9.1.2解決方法 293
9.1.4知識擴展——無模式對話框 294
9.1.5觸類旁通 295
9.1.6網路課堂 296
9.2改變按鈕的標題 297
9.2.1問題描述 297
9.2.2解決方法 297
9.2.3知識擴展——CButton類 297
9.2.4知識擴展——按鈕控制項的使用 299
9.2.5觸類旁通 301
9.2.6網路課堂 302
9.3如何在CEdit中換行輸出字元串? 302
9.3.1問題描述 302
9.3.2解決方法 302
9.3.3知識擴展——CEdit類 302
9.3.4觸類旁通 304
9.3.5網路課堂 304
9.4訪問列表框 305
9.4.1問題描述 305
9.4.2解決方法 305
9.4.3知識擴展——CListBox類 305
9.4.4觸類旁通 307
9.4.5網路課堂 308
9.5多樣式的組合框 308
9.5.1問題描述 308
9.5.2解決方法 308
9.5.3知識擴展——CComboBox類 308
9.5.4觸類旁通 309
9.5.5網路課堂 311
9.6改變控制項的行為 311
9.6.1問題描述 311
9.6.2解決方法 311
9.6.3知識擴展——派生自己的控制項類 312
9.6.4觸類旁通 313
9.6.5網路課堂 314
9.7屬性對話框和TabControl控制項 314
9.7.1問題描述 314
9.7.2解決辦法 315
9.7.3知識擴展——CTabCtrl類 316
9.7.4知識擴展——屬性頁對話框 316
9.7.5觸類旁通 318
9.7.6網路課堂 319
9.8C++/CLI中為什麼要定義Control
類型? 319
9.8.1問題描述 319
9.8.2解決方法 319
9.8.3知識擴展——控制項基類Control類 319
9.8.4網路課堂 321
9.9C++/CLI控制項BUTTON 321
9.9.1問題描述 321
9.9.2解決方法 321
9.9.3知識擴展——控制項Button類 321
9.9.4網路課堂 322
9.10Label控制項 322
9.10.1問題描述 322
9.10.2解決方法 322
9.10.3知識擴展——控制項Label和
LinkLabel類 322
9.10.4網路課堂 323
9.11TextBox控制項 323
9.11.1問題描述 323
9.11.2解決方法 324
9.11.3知識擴展——TextBox控制項 324
9.11.4觸類旁通 325
9.11.5網路課堂 326
9.12刪除ListBox中的項目 326
9.12.1問題描述 326
9.12.2解決方法 326
9.12.3知識擴展——ListBox控制項 327
9.12.4網路課堂 328
9.13C++/CLI通用對話框 328
9.13.1問題描述 328
9.13.2解決方法 329
9.13.3知識擴展——使用通用對話框 329
9.13.4網路課堂 329
第10章文檔和視圖 330
10.1CDocument如何保存數據 330
10.1.1問題描述 330
10.1.2解決方法 330
10.1.3知識擴展——文檔對象 331
10.1.4觸類旁通 334
10.1.5網路課堂 335
10.2在視圖中顯示數據 335
10.2.1問題描述 335
10.2.2解決方法 335
10.2.3知識擴展——CView類 336
10.2.4觸類旁通 336
10.2.5網路課堂 337
10.3如何使用CTreeView類 337
10.3.1問題描述 337
10.3.2解決方法 337
10.3.3知識擴展——CTreeView類 338
10.3.4觸類旁通 339
10.3.5網路課堂 340
10.4關於CListView類的問題 341
10.4.1問題描述 341
10.4.2解決方法 341
10.4.3知識擴展——CListView類 341
10.4.4觸類旁通 343
10.4.5網路課堂 344
10.5文檔、視圖和框架視窗的複雜組合 345
10.5.1問題描述 345
10.5.2解決方法 345
10.5.3知識擴展——複雜的文檔、
視圖和框架視窗組合 345
10.5.4網路課堂 348
10.6複雜的視窗界面 348
10.6.1問題描述 348
10.6.2解決方法 349
10.6.3知識擴展——拆分視窗 350
10.6.4觸類旁通 352
10.6.5網路課堂 353
10.7C++/CLI怎么創建MDI應用程式 354
10.7.1問題描述 354
10.7.2解決方法 354
10.7.3知識擴展——創建MDI
應用程式 354
10.7.4觸類旁通 355
10.7.5網路課堂 356
10.8為MDI程式添加選單 356
10.8.1問題描述 356
10.8.2解決方法 356
10.8.3知識擴展——使用MenuStrip
控制項 356
10.8.4知識擴展——創建MDI選單 357
10.8.5觸類旁通 359
10.8.6網路課堂 359
第11章在視窗繪圖 360
11.1.1問題描述 360
11.1.2解決方法 360
11.1.3知識擴展——MFC設備描述
表類 360
11.1.4觸類旁通 361
11.1.5網路課堂 362
11.2修改設備描述表的默認屬性 362
11.2.1問題描述 362
11.2.2解決方法 362
11.2.3知識擴展——MFC設備描述
表的屬性 363
11.2.4觸類旁通 363
11.2.5網路課堂 364
11.3處理文本 364
11.3.1問題描述 364
11.3.2解決方法 364
11.3.3知識擴展——繪製文本 365
11.3.4觸類旁通 366
11.3.5網路課堂 367
11.4關於MFCCFont的疑問 367
11.4.1問題描述 367
11.4.2解決方法 367
11.4.3知識擴展——字型 368
11.4.4觸類旁通 370
11.4.5網路課堂 372
11.5畫筆與畫刷 372
11.5.1問題描述 372
11.5.2解決方法 372
11.5.3知識擴展——畫筆 372
11.5.4知識擴展——畫刷 373
11.5.5觸類旁通 374
11.5.6網路課堂 375
11.6關於映射模式的問題 375
11.6.1問題描述 375
11.6.2解決方法 375
11.6.3知識擴展——映射模式 376
11.6.4觸類旁通 377
11.6.5網路課堂 378
11.7給MFC繪圖程式添加橡皮擦功能 378
11.7.1問題描述 378
11.7.2解決方法 378
11.7.3知識擴展——繪圖模式 379
11.7.4觸類旁通 380
11.7.5網路課堂 381
11.8BITMAP與CBitmap有什麼區別? 381
11.8.1問題描述 381
11.8.2解決方法 381
11.8.3知識擴展——CBitmap類 381
11.8.4知識擴展——DDB與DIB 383
11.8.5觸類旁通 387
11.8.6網路課堂 387
11.9調色板 387
11.9.1問題描述 387
11.9.2解決方法 387
11.9.3知識擴展——Windows
調色板 387
11.9.4網路課堂 390
11.10GDI+與GDI的區別 390
11.10.1問題描述 390
11.10.2解決方法 390
11.10.3知識擴展——了解GDI+ 391
11.10.4觸類旁通 393
11.10.5網路課堂 394
11.11GDI+的坐標系統 394
11.11.1問題描述 394
11.11.2解決方法 395
11.11.3知識擴展——GDI+坐標
系統 395
11.11.4網路課堂 396
11.12GDI+的顏色問題 396
11.12.1問題描述 396
11.12.2解決方法 397
11.12.3知識擴展——GDI+的顏色 397
11.12.4網路課堂 397
11.13如何修改窗體控制項中的字型 398
11.13.1問題描述 398
11.13.2解決方法 398
11.13.3知識擴展——GDI+字型與
文本 398
11.13.4觸類旁通 401
11.13.5網路課堂 401
11.14GDI+繪圖中如何使背景透明? 401
11.14.1問題描述 401
11.14.2解決方法 401
11.14.3知識擴展——GDI+繪圖 402
11.14.4網路課堂 403
第12章訪問資料庫 404
12.1ADO和ADO.NET的區別 404
12.1.1問題描述 404
12.1.2解決方法 404
12.1.3知識擴展——ADO對象模型 404
12.1.4觸類旁通 405
12.1.5網路課堂 405
12.2ADOConnection對象連線SQL
資料庫 406
12.2.1問題描述 406
12.2.2解決方法 406
12.2.3知識擴展——ADOConnection
對象 407
12.2.4觸類旁通 408
12.2.5網路課堂 409
12.3執行SQL命令並取得結果記錄集 409
12.3.1問題描述 409
12.3.2解決方法 409
12.3.3知識擴展——ADORecordset
對象 410
12.3.4觸類旁通 412
12.3.5網路課堂 413
12.4訪問記錄集 413
12.4.1問題描述 413
12.4.2解決方法 414
12.4.3知識擴展——訪問記錄集 414
12.4.4觸類旁通 415
12.4.5網路課堂 415
12.5.1問題描述 415
12.5.2解決方法 415
12.5.4網路課堂 419
12.6ADO中多次使用addnew添加記錄
出錯 419
12.6.1問題描述 419
12.6.2解決方法 419
12.6.3知識擴展——更新記錄集中
的記錄 420
12.6.4觸類旁通 420
12.6.5網路課堂 421
12.7調用存儲過程 421
12.7.1問題描述 421
12.7.2解決方法 421
12.7.3知識擴展——存儲過程 422
12.7.4網路課堂 423
12.8ADO.NET中的對象 423
12.8.1問題描述 423
12.8.2解決方法 423
12.8.3知識擴展——ADO.NET概述 424
12.8.4網路課堂 426
12.9使用DataReader 426
12.9.1問題描述 426
12.9.2解決方法 427
12.9.3知識擴展——DataReader
讀取資料庫 428
12.9.4觸類旁通 429
12.9.5網路課堂 429
12.10修改DataSet中的數據 429
12.10.1問題描述 429
12.10.2解決方法 430
12.10.3知識擴展——DataSet 430
12.10.4觸類旁通 433
12.10.5網路課堂 435
12.11獲取DataGridView控制項中的數據 435
12.11.1問題描述 435
12.11.2解決方法 435
12.11.3知識擴展——DataGridView 435
12.11.4觸類旁通 439
12.11.5網路課堂 440
13.1什麼是COM? 441
13.1.1問題描述 441
13.1.2解決方法 441
13.1.3知識擴展——組件技術 441
13.1.4觸類旁通 442
13.1.5網路課堂 442
13.2什麼是接口 443
13.2.1問題描述 443
13.2.2解決方法 443
13.2.3知識擴展——接口 443
13.2.4網路課堂 445
13.3判斷HRESULT的值 446
13.3.1問題描述 446
13.3.2解決方法 446
13.3.3知識擴展——HRESULT 446
13.3.4網路課堂 447
13.4GUID 447
13.4.1問題描述 447
13.4.2解決方法 447
13.4.3知識擴展——GUID 448
13.4.4網路課堂 448
13.5COM與註冊表 448
13.5.1問題描述 448
13.5.2解決方法 449
13.5.3知識擴展——COM與註冊表 449
13.5.4網路課堂 449
13.6組件的類別 449
13.6.1問題描述 449
13.6.2解決方法 449
13.6.3知識擴展——組件類別 450
13.6.4網路課堂 450
13.7為什麼需要類廠 450
13.7.1問題描述 450
13.7.2解決方法 450
13.7.3知識擴展——類廠 450
13.7.4觸類旁通 451
13.7.5網路課堂 451
13.8COM庫 452
13.8.1問題描述 452
13.8.2解決方法 452
13.8.3知識擴展——COM庫函式 452
13.8.4網路課堂 455
13.9什麼是ATL 455
13.9.1問題描述 455
13.9.2解決方法 455
13.9.3知識擴展——ATL簡介 455
13.9.4知識擴展——ATL與模板 456
13.9.5網路課堂 457
13.10.1問題描述 457
13.10.2解決方法 457
13.10.3知識擴展——創建COM
組件 457
13.10.4觸類旁通 462
13.10.5網路課堂 463
13.11接口定義語言IDL 464
13.11.1問題描述 464
13.11.2解決方法 464
13.11.3知識擴展——IDL 464
13.11.4知識擴展——類型庫 466
13.11.5觸類旁通 467
13.11.6網路課堂 468
13.12COM接口類型 468
13.12.1問題描述 468
13.12.2解決方法 468
13.12.3知識擴展——COM接口
類型概述 468
13.12.4觸類旁通 469
13.12.5網路課堂 471
13.13ATL和COM數據類型 472
13.13.1問題描述 472
13.13.2解決方法 472
13.13.3知識擴展——ATL與COM
數據類型 472
13.13.4觸類旁通 477
13.13.5網路課堂 478
13.14組件的復用技術 478
13.14.1問題描述 478
13.14.2解決方法 478
13.14.3知識擴展——包容 478
13.14.4知識擴展——聚合 481
13.14.5網路課堂 485
13.15進程外組件 485
13.15.1問題描述 485
13.15.2解決方法 485
13.15.3知識擴展——EXE中的COM
組件 485
13.15.4網路課堂 486