目录 1
第一部分 了解ObjectWindows 4
第一章 Windows概述 4
1.1Windows应用程序是什么 4
1.1.1Windows的优点 5
1.1.2要求 5
1.2面向对象和窗口设计 5
1.2.1更好的界面 5
1.2.1.3对消息的自动响应 6
1.2.1.2Windows函数的抽象 6
1.2.1.1窗口信息封装 6
1.3Windows程序的结构 10
1.3.1Windows的结构 10
1.3.2与Windows及DOS的交互 10
1.4“Hello.Windows” 11
1.4.1应用程序启动代码的责任 12
1.4.2主窗口的责任 12
1.4.3应用程序的开发周期 12
2.1创建ObjectWindows应用程序的预备工作 14
2.1.1Contaiher类库 14
第二章 分步骤介绍Windows 14
2.1.2目录 15
2.1.3给出正确的库 16
2.1.3.1使用DLL的ObjectWindows应用程序 16
2.1.4生成资源文件(resourcefile) 16
2.1.4.1对于BonandC++用户 17
2.1.4.2列于TurboC++forWindows用户 17
2.2创建一个ObjectWindows应用程序的特殊说明 17
2.2.1用IDE来建立一个ObjectWindows应用程序 18
2.2.2使用BorlandC++命令行工具来建立ObjectWindows应用程序 18
2.3.1.1定义应用程序类 19
2.3第1步:一个简单的Windows应用程序 19
2.3.1应用程序要求 19
2.4笫2步:主窗口类 21
2.4.1窗口对象 21
2.4.1.1句柄(handtes) 22
2.4.1.2父子窗口 22
2.4.2生成主窗口对象 22
2.4.3对消息进行响应 23
2.4.4一个应用程序的结束 24
第三章 填充窗口 27
3.1“显示正文”到底意谓着什么 27
3.2.1消息的结构 28
3.2第3步:在窗口中显示正文 28
3.2.2清除屏幕 29
3.3第4步:在窗口里画线 29
3.3.1拖动模式 30
3.3.2对拖动消息的响应 30
3.4第5步:改变线的宽度 32
3.4.1笔的选择 33
3.4.1.1换支笔 34
3.4.2使用输入对话 35
3.5第6步:绘图 35
3.5.2用对象存贮图形 36
3.5.1绘画模式 36
3.5.4重画存好的图形 39
第四章 添加一个菜单 40
4.1菜单资源 40
4.2第7步:主窗口的菜单 41
4.3接收一个菜单消息 42
4.4响应菜单消息 43
第五章 进行对话 45
5.1加一个弹出窗口 45
5.1.1生成弹出式窗口 46
5.1.2MakeWindow函数 46
5.2加一个对话框 47
5.2.2运行对话框 48
5.2.1增加一个数据成员 48
5.3第9步:将所画的存在文件中 49
5.3.1管理状态 49
5.3.2打开和保存文件 51
第六章 弹出窗口 53
6.1第10步:弹出一个帮助窗口 53
6.2在ObjectWindows中使用模块 54
6.2.1修改主程序 54
6.2.2生成模块 54
6.3.1控制是什么 56
6.3在窗口添加控制 56
6.2.2产生窗口控制 57
6.2.3控制对象作为数据成员 57
6.2.4对控制进行管理 58
6.2.5对控制消息响应 59
第二部分 使用ObjectWindows 63
第七章 ObjectWindows概述 63
7.1ObjectWindows约定 63
7.2ObjectWindows中的层次结构 64
7.2.5.1TWindow 65
7.2.5.2TEditWindow 65
7.2.5窗口对象(Windowobject) 65
7.2.6对话对象(Dialogojbect) 65
7.2.5.3TFilWindow 65
7.2.4界面对象(Intefaceobject) 65
7.2.3类TApplication 65
7.2.2类TModule 65
7.2.1类Object 65
7.2.4.1TWindowsObject 65
7.2.7.4TRadioButton 66
7.2.7.10TScrollbar 66
7.2.7.9TEdit 66
7.2.7.8TStatic 66
7.2.7.7TGroupBox 66
7.2.7.6TComboBox 66
7.2.7.5TListBox 66
7.2.7.1TControl 66
7.2.7.3TCheckBox 66
7.2.7.2TButton 66
7.2.7控制对象(Controlobject) 66
7.2.6.3TlnputDialog 66
7.2.6.2TFileDialog 66
7.2.6.1TDialog 66
7.3.1ObjectWindows对Windows函数的调用 67
7.3WindowsAPl函数 67
7.3.2访问Windows函数 67
7.2.8MDl对象 67
7.2.8.2TMDlClient 67
7.2.8.1TMDlFrame 67
7.2.9ScrollerObjects(滚动器对象) 67
7.3.3风格常数的组合 68
7.3.4Windows函数的类型 68
7.3.4.1Windowmanagerinterface函数 68
7.3.4.2Graphicdeviceinterface(GDl)函数 68
7.3.4.3Systemkservicesinterface函数 68
7.3.5.1Enumeration函数(枚举函数) 69
7.3.5回调函数(callbackfunction) 69
7.3.5.2使用精巧回调 70
7.4窗口消息 70
7.4.1Windows消息之参数 71
7.4.2Windows消息的类型 71
7.4.2.1Windowmanagementmessages(窗口管理消息) 71
7.4.2.2Initializationmessages(初始化消息) 71
7.4.2.9Scroll-barnotificationmessages(滚动条通知消息) 72
7.4.2.10Non-clientareamessages(非用户区消息) 72
7.4.2.8Controlnotificationmessages(控制通知消息) 72
7.4.2.11Mutipledocumentinterfacemessages(多文档界面消息) 72
7.4.3消息的缺省处理 72
7.4.27Controlmanipulationmessages(控制操作消息) 72
7.4.2.6Systeminformationmessages(系统信息消息) 72
7.4.2.5Clipboardmessages(剪贴板消息) 72
7.4.2.4Systemmessages(系统消息) 72
7.4.2.3Inputmessages(输入消息) 72
7.4.4发送消息 73
7.4.5消息值所处的范围 73
7.4.6用户定义的消息 74
第八章 模块与应用程序对象 75
8.1应用程序的流程 75
8.2初始化应用程序 76
8.2.1初始化主窗口 76
8.2.2初始化每个运行实例 77
8.2.3初始化第一个应用实例 78
8.3运行应用程序 80
8.4终止应用程序 80
第九章 界面对象 81
9.1TWindowsObiect类 81
9.2什么是界面对象? 81
9.3窗口的父子关系 82
9.3.1子窗口表 82
9.3.2子窗口遍历 83
9.4消息处理 83
9.4.1对消息的响应 84
9.4.2命令与子窗口消息 85
9.4.2.1命令消息的处理 85
9.4.3缺省的消息处理 86
9.4.2.2子窗口消息处理 86
第十章 窗口对象 88
10.1TWindow类 88
10.2初始化和创造窗口对象 88
10.2.1初始化窗口对象 88
10.2.2创建窗口元素 91
10.2.3初始化和创建总结 92
10.3窗口类注册 92
10.3.1注册属性 93
10.3.1.1类风格(classstyle)成员 94
10.4.1滚动条属性 95
10.4窗口的卷动 95
10.3.1.5缺省菜单(Defaultmenu)成员 95
10.3.1.4背景颜色(Backgroundcolor)成员 95
10.3.1.3游标(Cursor)成员 95
10.3.1.2图标(Icon)成员 95
10.4.2给窗口一个滚动条 96
10.4.3一个滚动的例子 97
10.4.4自动滚动和跟踪 98
10.4.5修改卷动单位和范围 99
10.4.5修改卷动的位置 99
10.4.6设置页大小 99
10.4.7改进Paint成员函数 100
10.5编辑窗口与文件窗口 101
10.5.1编辑窗口 101
10.5.2文件窗口 104
11.2.1构造和初始化对话对象 105
11.2使用一个子对话对象 105
11.1使用对话资源 105
第十一章 对话对象 105
11.2.2创建和执行对话 106
11.2.2.1模式(model)和无模式(modeless)的对话 106
11.2.3关闭一个子对话 106
11.2.4作为主窗口的对话 107
11.2.4.1为无模式的对话定义窗口类 107
11.2.5对控制的操作和对消息的处理 107
11.2.5.1管理对话的控制 108
11.2.5.2对于控制通知消息的响应 109
11.2.6使用对话的扩展的实例 110
11.2.5.3对话与控制通讯的例子 110
11.3输入对话 111
11.4文件对话(Filedialog) 112
第十二章 控制对象 114
12.1使用控制对象 114
12.1.1构造和创建控制 115
12.1.2消去和删除控制 116
12.1.3控制与消息处理 116
12.1.3.1操纵一个窗口控制 116
12.1.3.2响应控制通知消息 116
12.2控制焦点(Controlfocus)和键盘 117
12.3.2修改列表框 118
12.3.1构造和创建列表框 118
12.3列表框控制 118
12.3.3查询列表框 120
12.3.4从列表框得到选择 120
12.4组合框 121
12.4.1三种组合框 122
12.4.1.1简单组合框 122
12.4.1.2下拉的组合框 122
12.4.1.3下拉表的组合框 122
12.4.1.4选择组合框的类型 123
12.3.2组合框的构造 123
12.3.3修改组合框 123
12.4.2查询静态控制 124
12.4.3改变静态控制 124
12.3.4例子应用程序:CBoxTest 124
12.4.1构造静态控制 124
12.4静态控制(staticcontrol) 124
12.4.4例子:StatTest应用程序 125
12.5编辑控制 125
12.6.1构造编辑控制 126
12.6.2剪贴板和编辑操作 127
12.6.3查询编辑控制 128
12.6.5范倒程序:EditTest 130
12.6.4.3驱动正文选取和滚动 130
12.6.4.2插入正文 130
12.6.4修改编辑控制 130
12.6.4.1删除正文 130
12.7按式按钮(pushbutton)控制 131
12.7.1对按纽消息的响应 131
12.8确认框和无线电按纽 132
12.8.1构造确认框和无线电按钮 132
12.8.2查询选取框的状态 132
12.8.3修改选取框的状态 133
12.8.4对确认框和无线电按钮消息的响应 133
12.9组框 133
12.9.3示例程序:BtnTest 134
12.10滚动条 134
12.9.2对组框消息的响应 134
12.9.1构造一个组框 134
12.10.1构造滚动条对象 135
12.10.2查询滚动条 136
12.10.3修改滚动条 136
12.10.4对滚动条事件的响应 137
12.10.5示例:SBarTest 138
12.11传递控制数据 138
12.11.1定义一个传递缓冲区(transferbuffer) 139
12.11.2构造控制并允许传递 141
12.11.3传递数据 141
12.11.5传递例子 142
12.11.4设制传输控制 142
第十三章 设制控制对象 143
13.1修改一个预定义的控制 143
13.1.1修改创建风格 143
13.1.2修改预定义的消息响应 144
13.1.2.1为预定义的控制指定另外的处理 144
13.1.2.2重载一个预定义控制的响应 144
13.2使用设制控制 145
13.2.1设计一个设制控制 145
第十四章 MDI对象 147
14.1MDI应用程序的组成部分 147
1421构造MDI框架窗口 148
14.2构造MDI窗口 148
14.1.1每个MDI窗口是一个对象 148
14.2.2构适MDI子窗口 149
14.3在MDI应用用中的消息处理 150
14.3管理MDI子窗口 150
14.3.1激活子窗口 150
14.3.2子窗口菜单 150
14.4MDI范例应用程序 151
第十五章 流式对象 152
15.1lostream库 152
15.2重载的〈〈和〉〉操作符 153
15.4流管理器 154
15.3流式类和TStreamable 154
15.5流式类的构造函数 156
15.6流式类名字 157
15.7使用流管理器 158
15.7.1链入流管理器代码 158
15.7.2创建一个流对象 159
15.7.3使用流对象 159
15.8流上的集合 159
15.8.1使数组成为流式的 159
15.8.2流式的建造器函数 160
15.83StreamableName成员函数 161
15.8.4流式的读取器函数 162
第十六章 类参考 164
第三部分 ObjectWindows参考手册 164
TSampleclassName(示范类名称)class示范类头文件 165
ObjectObject.h 166
操作符〉〉和操作符〈〈 168
TApplicationapplicat.h 169
TButtonbutton.h 173
TCheckBoxcheckbox.h 175
TComboBoxcomboxh 178
TControlcontrol.h 181
TDialogdialog.h 183
TEditedit.h 189
TEditWindoweditwnd.h 194
TFileDialogfiledial.h 197
TFileWindowfilewnd.h 200
TGroupBoxgroupbox.h 204
TlnputDialoginputdia.h 206
TListBoxlistbox.h 207
TMDlClientmdi.h 212
TMDlFramemdi.h 215
TModulemodule.h 219
TRadioButtonradiobut.h 221
TScrollBarscrollbar.h 224
TScrollerscroller.h 228
TSearchDialogeditwnd.h 233
TStaticstatic.h 234
TWindowwindow.h 236
TWindowsObjectWindobi.h 241
第十七章 流式类引用 253
17.1流层次 253
fpbaseobjstm.h 253
fpstreamobjstrm.h 255
ifpstreamobjstrm.h 256
iopstreamobjstrm.h 257
ipstreamobjstrm.h 257
ofpstreamobjstrm.h 260
Opstreamobjstrm.h 261
pstreamobjstrm.h 263
TStreamableObjstrm.h 265
TStreamableClassobistrm.h 266
第十八章 杂项 268
SampleSample的头文件 268
应用程序类常量(applicationClassConstant)owldefsh.h 268
BF××××常量owldefs.h 268
BUlLDER类型obistrm.h 269
CLASSDEF(类名)宏定义defs.h 269
CLASSDLI宏 269
CLASSTYPE宏defs.h 269
CM××××常量owldefs.h 270
DELTA宏objstrm.h 271
dialogClass常量owldefs.h 271
DLL宏 271
EM××××常量owldefs.h 271
EXPORT宏owldefs.h 272
FAR宏defs.h 272
函数GetApplicationObjectopplicat.h 272
ID××××常量owldefs.h 273
__link宏Objstrm.h 273
moduleClass常量Owldefs.h 273
函数OWLGetVersionowl.h 274
operatornew 274
operatordelete 274
NF××××owldefs.h 274
OWLVersion常量owl.h 275
P_id_type类型定义objstrm.h 275
SafetyPoolsafepool.h 275
ScrollerClass常量owldefs.h 276
SD××××常量owlrc.h 276
Streamablelnit类型objstrm.h 276
TActionFund类型Windobj.h 277
TActionMenuFunc类型windobj.h 277
TComboBoxData类combobox.h 277
TDialogAttr类型dialog.h 278
TF××××常量owldefs.h 278
TCondFunc类型windobj.h 278
TCondMemFunc类型windobj.h 278
TListBoxData类listbox.h 279
TMessage类型windobj.h 280
TScrollBarData类型scrollba.h 280
TSearchStruct类型editund.h 281
TWindowAttr类型window.h 281
WB××××常量owldefs.h 282
WindowsClass常量owldefs.h 282
WM××××常量owldefs.h 282