第1章 窗口 1
实例1:通过HWND获得CWnd指针 1
实例2:获得应用程序主窗口的指针 2
实例3:获得指定点的窗口 3
实例4:最大化和最小化窗口 4
实例5:关闭窗口 4
实例6:设置窗口的大小和位置 5
实例7:居中显示窗口 6
实例8:顶层显示窗口 8
实例9:设置窗口图标 9
实例10:获得和设置窗口的标题 9
实例11:显示或隐藏窗口的标题栏 10
实例12:改变窗口形状 11
实例13:设置窗口的透明区域 13
实例14:透明窗口 14
实例15:窗口闪烁 15
实例16:图片窗口 16
实例17:动画窗口 17
实例18:桌面窗口 18
实例19:最小化桌面所有窗口 19
实例20:获取任务栏窗口 19
实例21:显示或隐藏任务栏 20
实例22:枚举桌面所有顶层窗口 21
第2章 菜单和光标 25
实例23:动态添加和删除菜单项 25
实例24:在系统菜单中添加和删除菜单项 27
实例25:禁用关闭按钮 29
实例26:启用和禁用菜单项 29
实例27:设置菜单项的检查状态 30
实例28:快捷菜单 31
实例29:获取光标的坐标 32
实例30:限制光标的移动范围 33
实例31:自定义光标 34
实例32:等待光标 35
第3章 控制栏 37
实例33:创建工具栏 37
实例34:设置工具栏标题 38
实例35:停靠工具栏 39
实例36:设置工具栏位图 41
实例37:为工具栏按钮添加文本标签 41
实例38:为工具栏按钮添加下拉箭头 42
实例39:为工具栏按钮设置热点图像 44
实例40:启用或禁用工具栏的工具提示 44
实例41:在工具栏中添加组合框 45
实例42:创建状态栏 47
实例43:在状态栏中添加进度条 48
实例44:显示或隐藏工具栏和状态栏 50
实例45:使用组合栏 51
第4章 对话框 53
实例46:创建模式对话框 53
实例47:创建非模式对话框 54
实例48:关闭模式对话框 56
实例49:关闭非模式对话框 57
实例50:在模式对话框中使用OK和Cancel按钮 58
实例51:在非模式对话框中使用OK和Cancel按钮 60
实例52:在对话框中添加最大化和最小化按钮 61
实例53:使基于对话框的程序不在任务栏中显示 62
实例54:使对话框大小可调整 63
实例55:居中显示对话框 63
实例56:不显示对话框 64
实例57:全屏显示对话框 65
实例58:改变对话框的背景颜色 66
实例59:改变对话框中控件的颜色 67
实例60:在对话框中输出文本 68
实例61:在对话框中加载菜单 69
实例62:在对话框中加载工具栏 69
实例63:在对话框中加载视图 70
实例64:使用Enter键控制对话框中控件的输入焦点 72
实例65:屏蔽对话框按Esc或Enter键退出 73
实例66:设置应用程序中对话框的默认颜色 73
实例67:创建消息对话框 74
实例68:实现对话框在桌面工作区的停靠 76
实例69:在客户区中移动对话框 77
第5章 框架和文档视图 79
实例70:禁止框架窗口在标题中显示文档名 79
实例71:设置文档的标题 80
实例72:设置框架窗口的标题 80
实例73:设置主框架窗口初始时大小 81
实例74:设置MDI子框架窗口初始时大小 82
实例75:最小化框架窗口 82
实例76:设置框架窗口最大化时的大小和位置 83
实例77:保存或恢复框架窗口的状态 84
实例78:删除SDI框架窗口中的菜单 86
实例79:删除MDI框架窗口中的菜单 87
实例80:改变视图的背景颜色 88
实例81:改变MDI主框架窗口的背景颜色 89
实例82:使MDI启动时不生成新的子窗口 90
实例83:排列MDI子框架窗口 90
实例84:在SDI中切换多视图 91
实例85:在SDI中动态切分窗口 93
实例86:在SDI中静态切分窗口 95
实例87:滚动视图的使用 96
实例88:列表视图的使用 97
实例89:树视图的使用 98
实例90:HTML视图的使用 99
实例91:在视图中获得文档指针 101
实例92:在框架中获得当前视图指针 101
实例93:新建或打开文档 103
实例94:创建新的框架窗口 104
实例95:实现单文档-多视图结构 105
实例96:在应用程序中遍历文档模板 107
实例97:在文档中遍历视图 109
第6章 通用控件 111
实例98:通过控件ID获取控件窗口指针 111
实例99:通过控件窗口指针获取控件ID 112
实例100:获取指定点的控件指针 113
实例101:遍历控件 114
实例102:根据父窗口的大小改变控件的大小和位置 114
实例103:显示或隐藏控件 115
实例104:启用或禁用控件 116
实例105:改变控件的颜色 117
实例106:设置控件的焦点 118
实例107:为控件添加工具提示 119
实例108:在编辑框中追加文本 120
实例109:在编辑框中实现多行显示 121
实例110:限制编辑框输入文本的长度 122
实例111:限制编辑框只能输入数字 123
实例112:将编辑框中输入的字符转换为大写(小写) 124
实例113:在按钮上显示图标 125
实例114:实现位图按钮 126
实例115:设置和获取单选按钮的选中状态 127
实例116:设置和获取一组单选按钮的选中状态 129
实例117:组合框的使用 130
实例118:实现带自动完成功能的组合框 131
实例119:设置组合框中列表框的宽度 133
实例120:在组合框中显示文件列表 134
实例121:在列表框中添加水平滚动条 135
实例122:进度条的使用 136
实例123:滑块的使用 137
实例124:旋转按钮的使用 139
实例125:在列表控件中插入列 140
实例126:设置列表控件的显示方式 142
实例127:设置列表控件的背景图片 144
实例128:在列表控件中整行选中 145
实例129:在列表控件中显示网格线 147
实例130:在列表控件中使用复选框 148
实例131:在列表控件中排序表项 150
实例132:在树控件中插入项 151
实例133:在树控件中添加连线和按钮 154
实例134:从树控件中删除项 155
实例135:展开和选择树提件项 156
实例136:设置树控件中项的图像 158
实例137:遍历树控件 159
实例138:如何使用标签控件 161
实例139:日期时间控件的使用 162
实例140:显示RichEdit控件 164
第7章 GDI 165
实例141:通过HDC获取CDC指针 165
实例142:创建屏幕DC 166
实例143:选择预定义的GDI对象 167
实例144:获取文本的长度和高度 167
实例145:在长文本末端显示省略号 168
实例146:设置文本的对齐方式 169
实例147:设置背景模式 170
实例148:绘制图形 171
实例149:画笔的使用 175
实例150:字体的使用 179
实例151:实现“橡皮筋”功能 180
实例152:显示位图资源 182
实例153:显示位图文件 184
实例154:用桌面背景填充指定区域 185
实例155:坐标映射 185
实例156:获取其他程序的图标 187
第8章 文件 189
实例157:获取或设置文件的属性 189
实例158:获取文件的信息 191
实例159:实现文件夹对话框 193
实例160:在列表框或组合框中显示文件和目录列表 196
实例161:复制文件 196
实例162:移动文件 198
实例163:删除文件 200
实例164:重命名文件 201
实例165:查找文件 202
实例166:使用Shell操作文件 203
实例167:获取应用程序的目录 206
实例168:获取或设置进程的当前目录 207
实例169:获取Windows目录和System目录 208
实例170:创建临时文件 209
实例171:创建目录 210
实例172:删除目录 211
实例173:逐行读取文本文件 213
实例174:在INI文件中读写数据 214
实例175:获取INI文件的全部段名 216
实例176:获取INI文件指定段的全部键名和键值 217
第9章 打印 219
实例177:通过打印对话框获取打印机设备环境 219
实例178:获取和设置打印页码范围 220
实例179:获取打印份数 222
实例180:获取和设置打印方向 223
实例181:获取页面信息 225
实例182:实现框架之外的打印 226
实例183:分页打印 228
实例184:获取打印机信息 229
实例185:枚举打印机 230
第10章 多线程 233
实例186:创建Worker线程 233
实例187:创建UI线程 236
实例188:等待线程结束 238
实例189:挂起和恢复线程 240
实例190:安全终止线程 242
实例191:获得线程的退出码 245
实例192:临界区的使用 248
实例193:互斥量的使用 252
实例194:信号量的使用 256
实例195:事件的使用 259
第11章 网络 263
实例196:获取本地计算机的名称 263
实例197:通过主机名称获取IP地址 265
实例198:获取本地计算机的IP地址 267
实例199:通过IP地址获取主机名称 268
实例200:获取本地计算机的MAC地址 270
实例201:获取本地计算机的子网掩码 273
实例202:获取本地计算机的域名 274
实例203:获取本地计算机的DNS服务器地址 276
实例204:获取本地计算机的网络协议信息 277
实例205:获取本地计算机的TCP统计信息 279
实例206:获取本地计算机的IP统计信息 281
实例207:获取本地计算机的UDP统计信息 283
实例208:获取网上邻居 284
实例209:映射网络驱动器 287
实例210:套接字的连接 291
实例211:面向连接的网络通信 296
实例212:无连接的网络通信 302
实例213:网络浏览器 306
第12章 ADO数据库 311
实例214:引入ADO动态链接库 311
实例215:初始化COM库 312
实例216:使用ADO打开、关闭数据库连接 312
实例217:使用ADO打开、关闭记录集 314
实例218:使用ADO执行SQL命令 317
实例219:在数据库中移动记录集 320
实例220:在数据库中访问记录 326
实例221:在数据库中修改记录 328
实例222:在数据库中添加记录 332
实例223:在数据库中删除记录 336
实例224:在数据库中查找记录 339
实例225:在数据库中操作长二进制数据 342
第13章 动态链接库 347
实例226:使用DEF文件导出函数 347
实例227:使用关键字_declspec(dllexport)导出函数 348
实例228:显式链接DLL 348
实例229:隐式链接DLL 350
实例230:在DLL中使用对话框资源 352
实例231:在MFC扩展DLL中导出类 353
实例232:从DLL中获取资源 354
实例233:如何在DLL中共享数据 356
第14章 系统 359
实例234:获取系统的度量信息 359
实例235:获取系统显示元素的颜色 361
实例236:启用/禁用屏幕保护程序 362
实例237:设置桌面墙纸 364
实例238:在应用程序中启动其他程序 365
实例239:打开我的电脑和我的文档 366
实例240:使应用程序只运行一个实例 367
实例241:将应用程序已运行的实例调至前台 368
实例242:注销、关闭、重启系统 370
实例243:获取系统时间 373
实例244:获取时间跨度 374
实例245:使用定时器 375
实例246:使用多媒体定时器 376
实例247:进行高精度计时 379
实例248:获得用户名 380
实例249:获取和设置NetBIOS计算机名 381
实例250:实现系统托盘 382
实例251:关闭输入法 385
实例252:枚举系统当前进程 386
实例253:实现钩子 388
实例254:在应用程序内部注册ActiveX控件 389
第15章 设备管理 391
实例255:获取物理内存参数 391
实例256:获取驱动器的名称 392
实例257:获取驱动器的卷标 394
实例258:设置驱动器的卷标 395
实例259:获取驱动器的序列号 397
实例260:获取驱动器的文件系统 398
实例261:获取驱动器的空间信息 400
实例262:获取显示属性 401
实例263:设置显示属性 403
实例264:设置显示器的状态 405
实例265:获取和设置鼠标的双击时间 406
实例266:获取鼠标的按键数 407
实例267:切换鼠标的左键和右键 408
实例268:获取键盘虚拟键的状态 408
实例269:模拟键盘按键 410
实例270:获取键盘的类型 412
实例271:获取键盘按键的名称 413
实例272:将键盘的扫描码转换成虚拟键值 414
第16章 数据类型及转换 415
实例273:将基本数据类型转换成CString类型 415
实例274:将TCHAR*类型转换成CString类型 416
实例275:将TCHAR*类型转换成BSTR类型 416
实例276:将BSTR类型转换成CString类型 417
实例277:将DWORD类型分解成WORD类型 418
实例278:将WORD类型组合成DWORD类型 418
实例279:将COLORREF类型转换成RGB分量 419
实例280:给VARIANT类型赋值 420
实例281:将BYTE转换成KB、MB和GB 421