《Visual C++ 网络大讲堂》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:张水波,董志鹏等编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2013
  • ISBN:9787302309253
  • 页数:486 页
图书介绍:本书介绍Visual C++ 2010支持的两种版本的C++,详细介绍两种风格的C++语言,使用微软基本类MFC开发本地的ISO/ANSI C++ Windows应用程序,使用Windows Forms开发C++/CLI Windows应用程序。本书按照读者的认知层次,依次介绍Visual C++ 2010基础知识、C++面向对象的程序开发、Windows应用程序开发和数据库访问等内容。

第1章 C++基础语法 1

1.1 C++的变量 1

1.1.1 问题描述 1

1.1.2 解决方法 1

1.1.3 知识扩展——声明和初始化变量 1

1.1.4 触类旁通 2

1.1.5 网络课堂 3

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 C++中的算术运算符都有哪些? 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 逻辑运算符与按位运算符 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.9 C++/CLI的数据类型 20

1.9.1 问题描述 20

1.9.2 解决方法 21

1.9.3 知识扩展——C++/CLI特有的数据类型 21

1.9.4 网络课堂 22

1.10 C++/CLI的输出输入 22

1.10.1 问题描述 22

1.10.2 解决方法 22

1.10.3 知识扩展——C++/CLI输出、输入 23

1.10.4 网络课堂 24

第2章 控制语句 25

2.1 C++中if语句的使用 25

2.1.1 问题描述 25

2.1.2 解决方法 25

2.1.3 知识扩展——基本if语句语法 26

2.1.4 触类旁通 28

2.1.5 网络课堂 28

2.2 if语句嵌套问题 28

2.2.1 问题描述 28

2.2.2 解决方法 29

2.2.3 知识扩展——嵌套if语句 30

2.2.4 触类旁通 31

2.2.5 网络课堂 33

2.3 C++的条件运算符 33

2.3.1 问题描述 33

2.3.2 解决方法 33

2.3.3 知识扩展——条件运算符 34

2.3.4 触类旁通 35

2.3.5 网络课堂 35

2.4 switch语句的使用 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.7 do...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.8 break和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.9 C++/CLI中的控制语句 50

2.9.1 问题描述 50

2.9.2 解决方法 50

2.9.3 知识扩展——for each循环 50

2.9.4 网络课堂 51

第3章数组、指针和字符串 52

3.1 C++中的数组 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.3 C++字符数组与字符串 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.5 C++中的指针 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 为数组动态分配内存 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.12 C++标准字符串 77

3.12.1 问题描述 77

3.12.2 解决方法 77

3.12.3 知识扩展——string类 78

3.12.4 触类旁通 78

3.12.5 网络课堂 80

3.13 C++/CLI中的指针——跟踪句柄 80

3.13.1 问题描述 80

3.13.2 解决方法 80

3.13.3 知识扩展——跟踪句柄 80

3.13.4 触类旁通 81

3.13.5 网络课堂 81

3.14 C++/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.15 C++/CLI中的多维数组 85

3.15.1 问题描述 85

3.15.2 解决方法 85

3.15.3 知识扩展——CLR多维数组 86

3.15.4 网络课堂 86

3.16 C++/CLI数组的数组 86

3.16.1 问题描述 86

3.16.2 解决方法 87

3.16.3 知识扩展——CLR数组的数组 87

3.16.4 触类旁通 87

3.16.5 网络课堂 88

3.17 C++/CLI中的字符串 88

3.17.1 问题描述 88

3.17.2 解决方法 88

3.17.3 知识扩展——String类 89

3.17.4 触类旁通 90

3.17.5 网络课堂 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.2 C++中的结构 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.7 this指针 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.12 C++/CLI枚举 158

5.12.1 问题描述 158

5.12.2 解决方法 159

5.12.3 知识扩展——C++/CLI中的枚举 159

5.12.4 网络课堂 160

5.13 C++/CLI数值类 160

5.13.1 问题描述 160

5.13.2 解决方法 161

5.13.3 知识扩展——C++/CLI数值类 161

5.13.4 网络课堂 163

5.14 C++/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.10 C++/CLI中的装箱与拆箱 202

6.10.1 问题描述 202

6.10.2 解决方法 202

6.10.3 知识扩展——装箱和拆箱 202

6.10.4 网络课堂 203

6.11 C++/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章 标准模板库 213

7.1 C++标准库和STL是一个东西不? 213

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.3 C++中矢量容器中如何存放自己的类对象? 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.1 2 算法 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.1 Window的数据类型 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类与Windows API 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.4 Windows系统的消息 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 理解Window Forms 285

8.14.1 问题描述 285

8.14.2 解决方法 285

8.14.3 知识扩展——Windows Forms程序 286

8.14.4 网络课堂 288

8.15 处理Window Forms事件 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 模式对话框和无模式对话框 293

9.1.1 问题描述 293

9.1.2 解决方法 293

9.1.3 知识扩展——模式对话框 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 属性对话框和Tab Control控件 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.8 C++/CLI中为什么要定义Control类型? 319

9.8.1 问题描述 319

9.8.2 解决方法 319

9.8.3 知识扩展——控件基类Control类 319

9.8.4 网络课堂 321

9.9 C++/CLI控件BUTTON 321

9.9.1 问题描述 321

9.9.2 解决方法 321

9.9.3 知识扩展——控件Button类 321

9.9.4 网络课堂 322

9.10 Label控件 322

9.10.1 问题描述 322

9.10.2 解决方法 322

9.10.3 知识扩展——控件Label和LinkLabel类 322

9.10.4 网络课堂 323

9.11 TextBox控件 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.13 C++/CLI通用对话框 328

9.13.1 问题描述 328

9.13.2 解决方法 329

9.13.3 知识扩展——使用通用对话框 329

9.13.4 网络课堂 329

第10章 文档和视图 330

10.1 CDocument如何保存数据 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.7 C++/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 什么是设备描述表? 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 关于MFC CFont的疑问 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.8 BITMAP与CBitrnap有什么区别? 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.10 GDI+与GDI的区别 390

11.10.1 问题描述 390

11.10.2 解决方法 390

11.10.3 知识扩展——了解GDI+ 391

11.10.4 触类旁通 393

11.10.5 网络课堂 394

11.11 GDI+的坐标系统 394

11.11.1 问题描述 394

11.11.2 解决方法 395

11.11.3 知识扩展——GDI+坐标系统 395

11.11.4 网络课堂 396

11.12 GDI+的颜色问题 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.14 GDI+绘图中如何使背景透明? 401

11.14.1 问题描述 401

11.14.2 解决方法 401

11.14.3 知识扩展——GDI+绘图 402

11.14.4 网络课堂 403

第12章 访问数据库 404

12.1 ADO和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.2 ADO Connection对象连接SQL数据库 406

12.2.1 问题描述 406

12.2.2 解决方法 406

12.2.3 知识扩展——ADO Connection对象 407

12.2.4 触类旁通 408

12.2.5 网络课堂 409

12.3 执行SQL命令并取得结果记录集 409

12.3.1 问题描述 409

12.3.2 解决方法 409

12.3.3 知识扩展——ADO Recordset对象 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 SQL注入式攻击 415

12.5.1 问题描述 415

12.5.2 解决方法 415

12.5.3 知识扩展——参数化查询 416

12.5.4 网络课堂 419

12.6 ADO中多次使用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.8 ADO.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章 组件对象模型 441

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.4 GUID 447

13.4.1 问题描述 447

13.4.2 解决方法 447

13.4.3 知识扩展——GUID 448

13.4.4 网络课堂 448

13.5 COM与注册表 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.8 COM库 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 使用ATL创建COM组件 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.12 COM接口类型 468

13.12.1 问题描述 468

13.12.2 解决方法 468

13.12.3 知识扩展——COM接口类型概述 468

13.12.4 触类旁通 469

13.12.5 网络课堂 471

13.13 ATL和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