第1部分:基础知识 1
第1章 .NET精简框架体系结构 3
WindowsCE概述 4
设计目标 5
平台和PlatformBuilder 11
eMbeddedVisualC++++ 12
什么是.NET 14
有效的.NET实现 15
.NET的规模与范围 15
三种.NET应用程序 17
通用编程要素 20
.NET精简框架 23
设计目标 24
.NET精简框架文件 27
.NET精简框架的能力 30
.NET精简框架的限制 35
小结 36
第2章 什么是.NET精简框架程序 37
.NET精简框架程序的本质 37
使用.NET精简框架库 38
有图形用户界面 38
完全由源代码定义 38
有一个或多个System.Windows.Forms.Form类的派生类 39
使用VisualStudio.NET2003 39
使用开发环境 42
查看设计器生成的代码 44
第1步:使用设计器添加控件 47
区域 47
Cistern示例程序 47
第2步:在程序中添加代码 52
添加类 56
创建WaterMath类 57
重载函数 58
使用WaterMath对象 59
定义和使用共享方法 59
理解命名空间 60
使用智能感知 62
小结 64
第3章 .NET类型系统 65
命名空间内容 66
使用类型信息:命名空间引用和程序集引用 66
访问命名空间 67
程序集引用 68
标准类型 69
值类型 69
引用类型 72
声明,初始化和分配 73
值类型和引用类型作为参数 74
字符串 75
字面字符串 75
System.String类 76
System.Text.StringBuilder类 78
字符串资源 78
类型转换 79
数值转换 80
字符串转换 82
将值转换为对象 84
内存管理 85
元数据表 85
JIT代码池 86
垃圾回收池 87
垃圾回收和数据 87
自动垃圾回收 88
托管数据的特殊处理 89
本地代码的手动内存管理 94
小结 94
P/Invoke概览 95
第4章 平台调用 95
何时使用P/Invoke 96
相对于Win32函数,为什么我们更喜欢.NET精简框架类 98
向托管代码中导入非托管代码 99
创建P/Invoke声明 99
一个简单的函数:MessageBox 100
非托管函数细节 102
函数返回值 105
开始:C风格的函数声明 105
可支持的P/Invoke函数参数 107
参数传递的限制 107
简单数据类型 107
通过传值和传引用来传递参数 109
结构体 110
通过传值传递字符串参数 110
类型的类型和参数的类型 115
数组 116
一个简单的程序:CallWin32 117
编写Win32动态连接库 121
开发工具 121
在DLL中声明C++++函数 121
手工进行P/Invoke参数传递 124
Marshal类 124
分配非托管内存空间 125
复制到非托管内存 127
从非托管内存创建对象 129
MessageWindow类 131
在非托管代码和托管代码间通信 131
在托管和非托管代码间通信的其他方法 133
比较P/Invoke支持 133
针对WindowsCE的差异 133
限制 134
.NET精简框架实现细节 135
小结 136
第2部分:创建用户界面 137
第5章 创建窗体 139
什么是窗体 139
从Form类继承窗体 140
属性,方法和事件 140
一个事件捕捉应用程序 145
操纵窗体 147
创建窗体 147
显示窗体 148
关闭窗体 149
孤立窗体 150
天气的示例应用程序 151
跟踪窗体 154
控件集 155
多线程 156
继承和可视化继承 157
小结 162
第6章 鼠标和键盘输入 163
输入概览 163
事件驱动输入 164
为鼠标和键盘输入使用控件 168
鼠标事件 173
脱字符号和光标 173
为鼠标输入编程 173
一个示例程序:DrawRectangles 176
用Cursor类设置鼠标光标 182
用Win32函数设置鼠标光标 183
键盘输入编程 184
键盘输入的来源 184
键盘事件 187
示例程序:KeyInput 191
示例程序:KeyState 197
示例程序:Caret 198
示例程序:Sleep 202
小结 204
什么是控件 205
可视的对象 205
第7章 深入控件 205
源于桌面版.NET框架 206
文档、开发和混淆 209
控件的分类 209
最根本的父控件 209
容器控件 210
单项控件 211
复合项控件 211
可视数值控件 212
背景控件 212
命令输入控件 212
属性、方法和事件 213
核心事件 213
Disposed事件 214
ParentChanged事件 217
Validating和Validated事件 217
EnabledChanged事件 219
GotFocus和LostFocus事件 220
核心属性 220
父/子属性 221
位置属性 222
数据绑定属性 223
控件状态属性 223
对象清理 224
坐标转换 224
线程安全函数调用 224
核心方法 224
Z轴次序 225
可见性 226
与控件类型信息打交道 226
对控件进行类型转换 226
比较两个控件引用 227
检查控件类型 227
五种常用控件 228
一个例程:时间跟踪器 231
书写代码 232
应用程序界面 235
编写事件处理程序 236
Label控件 237
可以显示;不能更新 238
透明性 238
TextBox控件 241
可以显示;可以输入 242
ListBox和ComboBox控件 243
ListBox控件中的列表 244
在我们的例程中使用ComboBox控件 245
按钮控件 246
触发操作 246
在运行时添加控件 247
为New按钮处理Click事件 247
为Add按钮处理Click事件 251
为Cancel按钮处理Click事件 252
一个例程:成员注册程序 253
RadioButton和CheckBox控件 253
使用单选按钮 254
构建成员注册程序 254
使用复选框 256
改进成员注册程序 256
小结 259
第8章 将数据绑定到控件 261
数据绑定 261
可数据绑定的控件 262
可数据绑定的对象 263
复杂数据绑定 266
对ListBox和ComboBox控件进行复杂数据绑定 267
简单数据绑定 267
BindingsCollection属性 268
格式化和解析 269
DataGrid控件 271
对DataGrid控件使用复杂数据绑定 272
在DataGrid控件中设置数据显示式样 274
建立表格和列的式样 275
在运行时进行设计 277
响应用户输入 278
对DataGrid控件使用简单数据绑定 281
访问DataGrid信息 282
提供“下一步”能力 285
提供实地编辑能力 289
提供自动实地编辑能力 293
小结 299
检测支持的属性、方法和事件 301
工具:ControlPME 301
第9章 深入更多的控件 301
桌面.NET框架程序中的.NET精简框架控件 302
菜单 303
开始菜单 303
程序菜单 304
示例程序:ProgramMemu 306
上下文菜单 307
示例程序:TextBoxClipboard 308
捕获事件 312
通过子类化来截取Win32消息 314
使用MessageWindow类来获取托管代码中的消息 321
工具栏 324
ToolBar和ImageList控件 324
工具栏按钮 326
ImageList控件和图片 327
示例程序:ToolBar 329
对话框 333
内置对话框 333
示例程序:FileDialogs 334
创建自定义的对话框 336
示例程序:DialogBoxes 339
小结 344
第10章 构建自定义控件 345
自定义控件 345
控件就是对象 346
设计建议 346
关于属性和方法 350
关于事件 353
从已有的.NET控件中衍生自定义控件 355
DateBox控件示例 356
WaterTemp对象的例子 367
创建复合控件 376
TaskStatus控件示例 377
创建新控件 381
设计技巧 381
为TaskStatus控件提供自己的显示功能 382
在自定义控件中添加动画 385
生活游戏 385
提供一致的速度和最小的抖动 388
对象重用 391
控件的主线程和它的服务线程 392
在多线程环境下建立自定义控件 392
多线程示例 394
在VisualStudio.NET的工具箱中添加自定义控件 399
将自定义控件放到工具箱中的障碍 400
开发设计时自定义控件 401
小结 408
第3部分:管理设备数据 409
第11章 存储 411
智能设备的数据存储 411
对象存储区 411
WindowsCE文件系统 413
基于ROM的文件 414
基于RAM的文件 414
File和Directory类 415
文件I/O 415
字节级别的I/O 416
高层次的I/O 417
数据的编码和解码 419
使用I/O类 420
文本文件I/O 422
二进制文件I/O 424
写入二进制数据 424
读取二进制数据 425
I/O和结构体 426
XML文件I/O 427
访问注册表 432
打开一个注册表键 432
映射注册表类型到托管类型 433
P/Invoke封装的需求 433
打开和访问注册表键 434
读取注册表值 435
写入注册表值 436
使用函数重载来访问数据库 436
使用注册表工具类 437
更新存储的示例应用程序来使用注册表 441
小结 444
第12章 ADO.NET编程 445
检查ADO.NET 447
一种分层方法 447
ADO.NET类 448
ADO.NET错误处理 451
使用数据集 452
创建和访问DataSet、DataTable和DataView对象 453
数据绑定 456
以XML读取和写入数据集 461
MicrosoftSQLServerCE 463
SQLServerCE文件 464
SQLServerCE语法 464
SQLServerCE查询分析器 467
创建一个SQLServerCE数据库实例 467
组装一个SQLServerCE数据库 469
获取和显示数据 471
更新SQLServerCE数据库 476
SqlCeDataAdapter类 477
查询模式信息 481
MicrosoftSQLServer 485
连接到SQLServer 486
创建命令对象 491
使用SQLSetver存储过程 492
用DataSet对象使用存储过程 496
数据集对象和并发性 498
WebServices 498
XMLXSD和SOAP 499
一个WebServices应用程序 500
一个WebServices的客户端应用程序 506
小结 508
第13章 同步移动数据 509
了解远程数据应用程序 510
远程数据接入RDA和合并复制 510
数据库连接性 511
IIS连接 511
创建虚拟目录 513
安装远程数据连接 513
配置另外的组件 515
使用RDA 516
RDA的性能和系统开销 516
RDA编程 517
使用合并复制 524
使用优良的设计,避免同步失败 524
配置合并复制 527
使用合并复制编程 528
在合并复制和RDA之间选择 533
小结 533
什么是ActiveSync 535
第14章 远程API 535
协作者和访客 536
ActiveSync的缺点 537
ActiveSync与WebServices的比较 539
ActiveSync编程接口 539
你需要创建托管代码的ActiveSync的应用程序吗 540
RAPI基本原理 541
RAPI函数 541
生成.NET Active Sync应用程序 542
RAPI启动和关闭 546
访问对象存储 553
使用RAPI访问移动设备文件 554
对设备注册表项的远程访问 564
对移动设备属性数据库的远程访问 572
自启动方法 575
回调方法 575
检测移动设备连接状态的改变 575
装载程序和DLL 580
运行移动设备端程序 580
装载移动设备端DLL 581
小结 586
第4部分:创建图形输出 587
第15章 .NET精简框架图形 589
.NET精简框架图形介绍 589
绘图面 590
绘图函数族 592
.NET精简框架图形 593
访问Graphics对象 597
显示屏绘图 597
在控件上绘图 598
Paint事件 600
非Paint事件绘图 601
光栅图形 602
指定颜色 602
创建刷子(Brush) 606
创建位图 608
绘制位图 615
示例程序:ShowBitmap 618
矢量图形 623
创建画笔 624
一个游戏:JaspersDots 624
小结 635
第16章 文本与字体 637
绘制文本 637
.NET精简框架支持的文本绘制 637
DrawString方法 638
一个示例程序:SimpleDrawString 639
字体选择 640
控件的字体属性 641
普通字体 641
示例程序:GenericFonts 643
创建命名字体 645
枚举字体 647
示例程序:FontPicker 648
一个示例库:FontList,一个Win32字体枚举DLL 650
本地代码字体 653
示例程序:RotateText 657
放置文本 659
文字大小和MeasureString方法 660
示例程序:MeasureString 660
文本对齐 661
示例程序:TextAlign 662
自动换行 666
示例程序:WordWrap 667
文本颜色 669
文本的前景和背景色 669
示例程序:TextColor 669
小结 674
第17章 打印 675
打印管道 676
打印机 676
I/O通道 678
打印任务 679
图形子系统 680
打印程序 681
打印输出编程 681
打印示例程序概述 682
PocketPC打印支持 684
打印对话框 685
直接打印 689
用PCL打印机直接打印 690
示例程序:PrintDirect 690
GDI绘制 694
GDI设计记录 695
WindowsCE支持的GDI函数 696
示例程序:PrintGDI 699
HP移动打印 702
PocketPC版HP移动打印 703
HP移动打印软件开发工具包 704
示例程序:PrintHPMobile 705
用PrinterCE绘制 706
PrinterCE库 708
示例程序:PrintField 710
小结 713
第5部分:附录 715
索引 717