第1部分 基础知识 1
第1章 .NET精简框架体系结构 3
WindowsCE概述 4
设计目标 5
平台和PlatormBuilder 11
eMbeddedVisualC++++ 11
什么是.NET 14
有效的.NET实现 14
.NET的规模与范围 14
三种.NET应用程序 17
通用编程要素 19
.NET精简框架 22
设计目标 23
.NET精简框架文件 26
.NET精简框架的能力 30
.NET精简框架的限制 34
小结 36
第2章 什么是.NET精简框架程序 37
.NET精简框架程序的本质 37
使用.NET精简框架库 37
有图形用户界面 38
完全由源代码定义 38
有一个或多个System.Windows.Forms.Form类的派生类 39
使用VisualStudio.NET2003 39
使用开发环境 42
查看设计器生成的代码 45
使用区域 46
改变窗体类和窗体文件的名字 47
Cistern示例程序 48
第1步:使用设计器添加控件 48
第2步:在程序中添加代码 52
添加类 56
创建WaterMath类 58
重载函数 59
使用WaterMath对象 59
定义和使用静态方法 60
理解命名空间 61
使用智能感知 63
小结 64
第3章 .NET类型系统 65
使用类型信息:命名空间引用和程序集引用 66
命名空间内容 66
访问命名空间 67
程序集引用 68
标准类型 69
值类型 69
引用类型 73
声明,初始化和分配 74
值类型和引用类型作为参数 75
字符串 76
字面字符串 76
System.String类 77
字符串资源 78
System.Text.StringBuilder类 78
类型转换 80
数值转换 80
字符串转换 83
将值转换为对象 84
内存管理 85
元数据表 86
JIT代码池 86
垃圾回收池 87
垃圾回收和数据 88
自动垃圾回收 88
托管数据的特殊处理 89
本地代码的手动内存管理 94
小结 95
第4章 平台调用 97
P/Invoke概览 97
何时使用P/Invoke 98
相对于Win32函数,为什么我们更喜欢.NET精简框架类 100
向托管代码中导入非托管代码 100
创建P/Invoke声明 101
一个简单的函数:MessageBox 101
非托管函数细节 103
函数返回值 105
开始:C风格的函数声明 105
可支持的P/Invoke函数参数 107
参数传递的限制 107
简单数据类型 108
通过传值和传引用来传递参数 109
结构体 111
通过传值传递字符串参数 111
类型的类型和参数的类型 115
数组 116
一个简单的程序:CallWin32 117
编写Win32动态连接库 120
开发工具 120
在DLL中声明C++++函数 120
手工进行P/Invoke参数传递 122
Marshal类 123
分配非托管内存空间 124
复制到非托管内存 126
从非托管内存创建对象 127
MessageWindow类 129
在非托管代码和托管代码间通信 129
在托管和非托管代码间通信的其他方法 131
比较P/Invoke支持 131
针对WindowsCE的差异 131
限制 132
.NET精简框架实现细节 133
小结 134
第2部分 创建用户界面 135
第5章 创建窗体 137
什么是窗体 137
从Form类继承窗体 138
属性,方法和事件 138
一个事件捕捉应用程序 142
创建窗体 145
操纵窗体 145
显示窗体 146
关闭窗体 147
孤立窗体 148
天气的示例应用程序 148
跟踪窗体 151
控件集 152
多线程 153
继承和可视化继承 154
小结 159
第6章 鼠标和键盘输入 161
输入概览 161
事件驱动输入 162
为鼠标和键盘输入使用控件 167
补字号和光标 171
为鼠标输入编程 172
鼠标事件 172
一个示例程序:DrawRectangles 174
用Cursor类设置鼠标光标 181
用Win32函数设置鼠标光标 182
键盘输入编程 184
键盘输入的来源 184
键盘事件 186
示例程序:KeyInput 192
示例程序:KeyState 197
示例程序:Caret 199
示例程序:Sleep 202
小结 205
什么是控件 207
可视的对象 207
第7章 深入控件 207
源于桌面版.NET框架 208
开发文档的混淆 210
控件的分类 210
最根本的父控件 210
容器控件 211
单项控件 212
复合项控件 212
命令输入控件 213
可视数值控件 213
背景控件 213
核心事件 214
属性,方法和事件 214
Disposed事件 215
ParentChanged事件 218
Validating和Validated事件 218
EnabledChanged事件 220
GotFocus和LostFocus事件 220
核心属性 221
父/子属性 221
位置属性 222
数据绑定属性 223
控件状态属性 223
核心方法 223
Z轴次序 224
坐标转换 224
对象清理 224
线程安全函数调用 224
可见性 225
关于控件类型信息 225
对控件进行类型转换 226
比较两个控件引用 226
检查控件类型 226
五种常用控件 227
一个示例程序:时间跟踪器 230
书写代码 230
应用程序界面 233
编写事件处理程序 234
Label控件 235
透明性 236
可以显示;不能更新 236
TextBox控件 239
可以显示;可以输入 239
ListBox和ComboBox控件 240
ListBox控件中的列表 241
在示例程序中使用ComboBox控件 242
按钮控件 243
触发操作 244
在运行时添加控件 244
为New按钮处理Click事件 245
为Add按钮处理Click事件 247
为Cancel按钮处理Click事件 248
一个示例程序:RegisterMembers 249
RadioButton和CheckBox控件 249
使用单选按钮 250
构建RegisterMember 250
使用复选框 252
改进成员注册程序 252
小结 255
第8章 将数据绑定到控件 257
数据绑定 257
可数据绑定的控件 258
可数据绑定的对象 259
复杂数据绑定 262
对ListBox和ComboBox控件进行复杂数据绑定 263
BindingsCollection属性 264
简单数据绑定 264
格式化和解析 265
DataGrid控件 267
对DataGrid控件使用复杂数据绑定 270
在DataGrid控件中设置数据显示样式 271
建立表格和列的样式 273
在运行时进行设计 275
响应用户输入 276
对DataGrid控件使用简单数据绑定 278
访问DataGrid信息 279
提供“向下展开”能力 282
提供实地编辑能力 286
提供自动实地编辑能力 290
小结 297
工具:ControlPME 299
检测支持的属性,方法和事件 299
第9章 深入更多的控件 299
桌面.NET框架程序中的.NET精简框架控件 300
菜单 301
开始菜单 301
程序菜单 303
示例程序:ProgramMemu 305
上下文菜单 306
示例程序:TextBoxClipboard 307
捕获事件 311
通过子类化来截取Win32消息 313
使用MessageWindow类来获取托管代码中的消息 319
ToolBar和ImageList控件 322
工具栏 323
ImageList控件和图片 325
工具栏按钮 325
示例程序:ToolBar 327
对话框 331
内置对话框 332
示例程序:FileDialogs 333
创建自定义的对话框 335
示例程序:DialogBoxes 339
小结 344
第10章 构建自定义控件 345
自定义控件 345
控件就是对象 346
设计建议 346
关于属性和方法 350
关于事件 352
从已有的.NET控件中衍生自定义控件 355
DateBox控件示例 355
WaterTemp对象的例子 367
创建复合控件 376
TaskStatus控件示例 377
创建新控件 380
设计技巧 381
为TaskStatus控件提供自己的显示功能 382
在自定义控件中添加动画 384
生活游戏 384
提供一致的速度和最小的抖动 388
对象重用 391
控件的主线程和它的服务线程 392
在多线程环境下建立自定义控件 392
多线程示例 394
在VisualStudio.NET的工具箱中添加自定义控件 398
将自定义控件放到工具箱中的障碍 398
开发设计时自定义控件 400
小结 407
第3部分 管理设备数据 409
第11章 存储 411
智能设备的数据存储 411
对象存储区 411
WindowsCE文件系统 413
基于ROM的文件 413
基于RAM的文件 414
文件I/O 414
File和Directory类 415
字节层次的I/O 416
高层次的I/O 416
数据的编码和解码 418
使用I/O类 418
文本文件I/O 420
二进制文件I/O 422
写入二进制数据 422
读取二进制数据 423
I/O和结构体 424
XML文件I/O 426
访问注册表 430
打开一个注册表键 430
映射注册表类型到托管类型 431
P/Invoke封装的需求 431
打开和访问注册表键 432
读取注册表值 433
写入注册表值 434
使用函数重载来访问数据库 434
使用注册表工具类 435
更新存储的示例应用程序来使用注册表 438
小结 441
第12章 ADO.NET编程 443
检查ADO.NET 445
一种分层方法 445
ADO.NET类 446
ADO.NET错误处理 449
使用数据集 450
创建和访问DataSet,DataTable和DataView对象 451
数据绑定 454
以XML读取和写入数据集 459
MicrosoftSQLServerCE 461
SQLServerCE文件 461
SQLServerCE语法 462
SQLServerCE查询分析器 464
创建一个SQLServerCE数据库实例 466
组装一个SQLServerCE数据库 467
获取和显示数据 469
更新SQLServerCE数据库 476
SqlCeDataAdapter类 477
查询模式信息 481
MicrosoftSQLServer 484
连接到SQLServer 486
创建命令对象 491
使用SQLServer存储过程 492
用DataSet对象使用存储过程 496
数据集对象和并发性 499
WebServices 499
XML、XSD和SOAP 499
一个WebServices应用程序 501
一个WebServices的客户端应用程序 508
小结 511
第13章 同步移动数据 513
了解远程数据应用程序 513
远程数据接入RDA和合并复制 514
数据库连接性 515
IIS连接 515
创建虚拟目录 517
安装远程数据连接 517
配置另外的组件 519
使用RDA 520
RDA性能和系统开销 520
RDA编程 521
使用合并复制 527
使用优良的设计,避免同步失败 527
配置合并复制 530
使用合并复制编程 530
在合并复制和RDA之间选择 535
小结 536
什么是ActiveSync 537
第14章 远程API 537
协作者和访客 538
ActiveSync的缺点 539
ActiveSync与WebServices的比较 541
ActiveSync编程接口 541
你需要创建托管代码的ActiveSync的应用程序吗 541
RAPI基本原理 542
RAPI函数 543
生成.NETActiveSync应用程序 543
RAPI启动和关闭 547
访问对象存储 553
使用RAPI访问移动设备文件 554
对设备注册表项的远程访问 563
对移动设备属性数据库的远程访问 570
检测移动设备连接状态的改变 572
自启动方法 573
回调方法 573
装载程序和DLL 577
运行移动设备端程序 578
装载移动设备端DLL 578
小结 582
第4部分 创建图形输出 583
第15章 .NET精简框架图形 585
.NET精简框架图形介绍 585
绘图面 586
绘图函数族 588
.NET精简框架图形 589
访问Graphics对象 592
显示屏绘图 592
在控件上绘图 593
Paint事件 594
非Paint事件绘图 596
光栅图形 596
指定颜色 597
创建刷子 600
创建位图 601
绘制位图 608
示例程序:ShowBitmap 611
矢量图形 617
创建画笔 618
一个游戏:JaspersDots 619
小结 631
第16章 文本与字体 633
绘制文本 633
.NET精简框架支持的文本绘制 633
DrawString方法 634
一个示例程序:SimpleDrawString 635
字体选择 636
控件的Font属性 636
普通字体 637
示例程序:GenericFonts 638
创建命名字体 640
枚举字体 642
示例程序:FontPicker 643
一个示例库:FontList,一个Win32字体枚举DLL 644
本地代码字体 648
示例程序:RotateText 651
放置文本 654
文字大小和MeasureString方法 654
示例程序:MeasureString 655
文本对齐 656
示例程序:TextAlign 657
自动换行 661
示例程序:WordWrap 661
文本颜色 663
文本的前景色和背景色 663
示例程序:TextColor 663
小结 668
第17章 打印 669
打印机 670
打印管道 670
I/O通道 671
打印任务 673
图形子系统 673
打印程序 674
打印输出编程 674
打印示例程序概述 675
PocketPC打印支持 677
打印对话框 678
直接打印 681
用PCL打印机直接打印 682
示例程序:PrntDirect 683
GDI设计记录 687
GDI绘制 687
WindowsCE支持的GDI函数 688
示例程序:PrintGDI 691
HP移动打印 694
PocketPC版HP移动打印 694
HP移动打印软件开发工具包 695
示例程序:PrintHPMobile 697
用printerCE绘制 698
printerCE库 699
示例程序:PrintField 701
小结 704
第5部分 附录 705
索引 707