《Microsoft Windows 3.0 SDK 程序设计指南》求取 ⇩

第一部分Windows应用程序设计引论1

第1章Windows环境概貌1

1.1Microsoft Windows与DOS的比较1

1.1.1用户界面2

1.1.2队列输入2

1.1.3与设备无关的图形2

1.1.4多任务3

1.2Windows程序设计模型3

1.2.1窗口3

1.2.2菜单4

1.2.3对话框4

1.2.4消息循环4

1.3 Windows库5

1.4 建立Windows应用程序6

1.5软件开发工具7

1.5.1C编译器8

1.5.2连接程序9

1.5.3 SDK资源编辑器9

1.5.4资源编译程序10

1.5.5调试和优化工具10

1.5.6程序维护器10

1.6编写 Windows应用程序的提示12

1.7小结13

第2章Windows应用程序Generic14

2.1应用程序14

2.2Windows应用程序15

2.3W inMain函数15

2.3.1 Windows的数据类型与结构16

2.3.2句柄17

2.3.3实例17

2.3.4注册窗口类17

2.3.5创建窗口20

2.3.6显示和修改窗口21

2.3.7创建消息循环21

2.3.8产生控制22

2.3.9终止应用程序22

2.3.10初始化函数23

2.3.11应用程序的命令行参数24

2.4窗口函数25

2.5创建一个About对话框26

2.5.1创建一个对话框模板26

2.5.2创建一个包含文件27

2.5.3创建一个对话函数28

2.5.4用About命令定义一个菜单29

2.5.5处理WM—COMMAND消息29

2.6创建模块定义文件30

2.7装配Generic32

2.7.1创建C语言源文件32

2.7.2创建头文件37

2.7.3创建资源描述文件37

2.7.4创建模块定义文件37

2.7.5创建Make文件38

2.7.6运行MAKE程序39

2.8把Generic用作一个模板39

2.9小结40

第二部分Windows应用程序的编程42

第3章窗口输出42

3.1显示描述表42

3.1.1使用GetDC函数42

3.1.2WM—PAINT消息42

3.1.3使用户区域无效43

3.1.4显示描述表与设备描述表43

3.1.5坐标系44

3.2创建、选择和删除绘图工具44

3.3绘图与书写45

3.4示例应用程序:Output46

3.4.1加入新变量46

3.4.2加入WM—CREATE分支语句47

3.4.3加入WM—PAINT消息47

3.4.4.修改WM—DESTROY分支语句49

3.4.5编译并连接50

3.5小结50

第4章键盘和鼠标输入52

4.1Windows输入消息52

4.1.1消息格式52

4.1.2键盘输入52

4.1.3字符输入53

4.1.4鼠标输入53

4.1.5定时器输入54

4.1.6卷滚条输入54

4.1.7菜单输入55

4.2示例应用程序:Input55

4.2.1Input应用程序怎样显示输出56

4.2.2增加新变量56

4.2.3设置窗口类风格57

4.2.4 修改CreateWindow函数57

4.2.5设置正文矩形57

4.2.6增加WM—CREATE分支语句58

4.2.7修改W M—DESTROY分支语句58

4.2.8加入WM—KEYUP和WM—KEYDOWN分支语句58

4.2.9加入WM—CHAR分支语句59

4.2.10加入WM—MOUSEMOVE分支语句59

4.2.11加入WM—LBUTTONUP和WM—LBUTTONDOWN59

4.2.12加入WM—LBUTTONDBLCLK分支语句59

4.2.13加入W M—TIMER分支语句60

4.2.14加入WM—HSCROLL和WM—VSCROLL分支语句60

4.2.15加入WM—PAINT分支语句60

4.2.16编译并连接62

4.3小结62

第5章图标63

5.1何谓图标?63

5.1.1使用固有图标63

5.2使用自己的图标63

5.2.1创建图标文件64

5.2.2定义图标资源64

5.2.3加载图标资源65

5.3指定类图标65

5.4显示自己的图标65

5.5在对话框里显示图标66

5.6示例应用程序:Icon67

5.6.1加入一条ICON语句67

5.6.2加入一条ICON控制语句67

5.6.3设置类图标67

5.6.4把MYICON,ICO加到Make文件68

5.6.5编译并连接68

5.7小结68

第6章光标、图标和键盘69

6.1控制光标的形状69

6.1.1使用固有光标形状69

6.1.2使用你自己的光标形状69

6.2显示光标70

6.2.1指定类光标70

6.2.2显式设置光标形状70

6.2.3举例:在过长操作中显示小计时器71

6.3让用户用鼠标选择信息71

6.3.1开始图形选择72

6.3.2显示选择74

6.3.3结束选择75

6.4用键盘移动光标75

6.4.1用键盘移动光标75

6.4.2没有鼠标时如何使用光标77

6.5示例应用程序:Cursor78

6.5.1加入CURSOR语句79

6.5.2加入新变量79

6.5.3设置类光标79

6.5.4准备小计时器光标79

6.5.5加入—过长操作80

6.5.6加入WM—LBUTTONDOW、 WM—MOUSEMOVE和 WM—LBUTTONUP分支语句81

6.5.7加入WM—KEYDOWN和WM—KEYUP分支语句82

6.5.8加入WM—PAINT分支语句84

6.5.9把BULLSEYE.CUR加到make文件中84

6.5.10编译并连接84

6.6小结84

第7章菜单86

7.1何谓菜单?86

7.2定义一菜单86

7.2.1菜单ID87

7.3把菜单包含到应用程序里88

7.3.1指定窗口类的菜单88

7.3.2指定特定窗口的菜单88

7.4处理菜单输入89

7.5应用程序用菜单工作89

7.5.1激活和禁止菜单项90

7.5.2选中和退选菜单项91

7.5.3增加菜单项91

7.5.4改变现有菜单92

7.5.5删除菜单项93

7.5.6把位图用作菜单项93

7.5.7替换菜单94

7.5.8创建—新菜单94

7.5.9初始化—菜单94

7.6特殊的菜单特征95

7.6.1提供菜单加速键95

7.6.2使用级联菜单97

7.6.3使用浮动弹出式菜单99

7.6.4设计自己的选中标记100

7.6.5使用所有者画图菜单101

7.7示例应用程序:Ed itMenu102

7.7.1把新菜单加到资源文件中102

7.7.2在包含文件中加入定义103

7.7.3在资源描述文件中加入加速键表104

7.7.4加入一新变量104

7.7.5加载加速键表104

7.7.6修改消息循环105

7.7.7修改WM—COMMAND情况105

7.7.8编译并连接106

7.8小结106

第8章控制107

8.1什么是控制107

8.2建立一个控制107

8.2.1指定控制类108

8.2.2选择控制风格108

8.2.3设置父窗口109

8.2.4选择控制ID109

8.3使用控制110

8.3.1接收用户输入110

8.3.2发送控制消息110

8.3.3关闭与激活控制的输入110

8.3.4移动和改变控制窗口的大小111

8.3.5终止控制111

8.4建立和使用常用控制111

8.4.1按钮控制111

8.4.2静态控制114

8.4.3列表框115

8.4.4组合框122

8.4.5编辑控制123

8.4.6卷滚条125

8.5一个示例应用程序:EditCntl127

8.5.1在包含文件中增加一个常量128

8.5.2增加新的变量128

8.5.3增加一个CreateWindows函数128

8.5.4修改WM—COMMAND分支支部语句129

8.5.5增加一个WM—SETFOCUS分支语句129

8.5.6增加一个WM—SIZE分支语句130

8.5.7编译与连接130

8.6小结130

第9章对话框132

9.1什么是对话框132

9.1.1模式的对话框132

9.1.2无模式对话框133

9.2使用对话框133

9.2.1创建一个对话函数133

9.2.2在对话框中使用控制134

9.3一个示例应用程序:FileOpen134

9.3.1在包含文件中增加常量135

9.3.2建立对话框Open的模板136

9.3.3增加新的变量137

9.3.4增加IDM—Open分支语句137

9.3.5建立函数OpenDlg138

9.3.6增加帮助函数140

9.3.7输入对话函数142

9.3.8编译和连接142

9.4小结142

第10章文件输入输出144

10.1 Windows环境中处理文件的原则144

10.2创建文件145

10.3打开已存在文件146

10.4读文件和写文件146

10.5重打开文件147

10.6关于文件的提示147

10.7检查文件状态147

10.8一个示例文件编辑器:EditFile148

10.8.1在包含文件中增加一个常量148

10.8.2增加对话框SaveAs148

10.8.3增加包含语句149

10.8.4增加新的变量149

10.8.5替换WM—COMMAND分支语句150

10.8.6增加WM—QUERYENDSESSION和WM—CLOSE分支语句152

10.8.7修改对话函数OpenDlg153

10.8.8增加对话函数SaveAsDlg153

10.8.9增加帮助函数155

10.8.10输出对话函数SaveAsDlg158

10.8.11增加堆的空间159

10.8.12编译与连接159

10.9小结159

第11章位图160

11.1什么是位图?160

11.2创建位图160

11.2.1创建与装入位图文件160

11.2.2创建并填充空白位图161

11.2.3用硬编码位方式创建位图162

11.2.4绘制一个彩色位图165

11.3显示位图167

11.3.1使用函数BitBlt显示内存位图167

11.3.2缩放位图168

11.3.3位图用于刷子图案169

11.3.4显示与设备无关的位图170

11.3.5位图用作菜单项171

11.4将彩色加到单色位图中171

11.5删除位图172

11.6一个示例应用程序:Bitmap172

11.6.1修改包含文件173

11.6.2增加位图资源173

11.6.3增加位图、图案和模式菜单173

11.6.4增加全局和局部变量174

11.6.5增加WM—CREATE分支语句175

11.6.6修改WM—DESTROY分支语句178

11.6.7增加分支语句178

11.6.8增加WM—REUTTONUP分支语句179

11.6.9增加WM—ERASEBKGND分支语句180

11.6.10修改WM—COMMAND分支语句180

11.6.11修改Make文件182

11.6.12编译与连择183

11.7小结183

第12章打印184

12.1在windows环境中打印184

12.1.1使用打印机换码序列184

12.2检索打印机的有关信息185

12.3打印一行文本186

12.4打印位图187

12.5处理打印过程中的错误188

12.6取消打印操作190

12.6.1定义对话框Abort190

12.6.2定义对话函数Abort190

12.6.3定义函数Abort191

12.6.4执行可中止的打印操作193

12.6.5用ABORTDOC换码序列来取消打印操作193

12.7使用段式打印技术来打印图形193

12.8一个示例应用程序:PrntFile194

12.8.1增加对话框AbrtDlg195

12.8.2增加用于打印的新变量195

12.8.3增加IDM—PRINT分支语句196

12.8.4创建函数AbortDlg和AbortProc198

12.8.5增加函数GetPrinterDC199

12.8.6输出函数AbortDlg和AbortProc200

12.8.7编译与连接200

12.9小结200

第12章写字板201

13.1使用写字板201

13.1.1向写字板中拷贝文本202

13.1.2从写字板中读取文本203

13.1.3从写字板中读取位图205

13.1.4Windows的写字板应用程序207

13.2使用特殊的写字板功能207

13.2.1根据请求放弃数据208

13.2.2在结束之前放弃格式208

13.2.3注册私有格式208

13.2.4控制写字板中的数据的显示208

13.3一个示例应用程序:ClipText210

13.3.1增加新变量211

13.3.2修改初始化代码211

13.3.3增加WM—INITMENU分支语句211

13.3.4修改WM—COMMADN分支语句212

13.3.5增加WM—PAINT分支语句215

13.3.6增加函数OutOfMemory215

13.3.7编译与连接216

13.8小结216

第三部分高级程序设计专题218

第14章C与汇编语言218

14.1选择内存模式218

14.2使用NULL219

14.3使用命令行参数和DOS环境219

14.4编写输出函数220

14.4.1创建一个加调过程221

14.4.2创建函数WinMain221

14.5.使用C运行时刻函数221

14.5.1使用Windows C库程序221

14.5.2分配内存222

14.5.3字串操作222

14.5.4使用文件输入与输出223

14.5.5使用控制台输入与输出224

14.5.6使用图形函数224

14.5.7使用浮点运算224

14.5.8执行其它应用程序225

14.5.9使用BIOS和MS—DOS的接口函数225

14.5.10删除C运行时刻启动代码225

14.6编写汇编语言代码226

14.6.1修改中断标志227

14.6.2用汇编语言来编写需输出的函数229

14.6.3使用寄存器229

14.7小结230

第15章内存管理231

15.1使用内存231

15.1.1使用全局堆231

15.1.2使用局部堆232

15.1.3处理可废除的内存233

15.2段的使用234

15.2.1使用代码段235

15.2.2DATA段236

15.3一个示例应用程序:Memory236

15.3.1分割C语言源文件236

15.3.2修改Include文件237

15.3.3增加新的段定义237

15.3.4修改Make文件238

15.3.5编译与连接239

15.4小结239

第16章关于内存管理的进一步说明240

16.1Windows的内存配置240

16.1.1基本内存配置240

16.1.2 EMS 4.0内存配置242

16.1.3 Windows标准模式的内存配置245

16.1.4 Windows 386增强模式的内存配置248

16.2在Windows应用程序里使用数据存储250

16.2.1管理自动数据段251

16.2.2管理局部动态数据块253

16.2.3管理全局内存块257

16.2.4使用窗口和类数据结构中的附加字节262

16.2.5管理资源263

16.3使用内存模式265

16.4使用巨型数据266

16.5管理程序数据时应避免的陷阱267

16.5.1不要假定应用程序运行特权级267

16.5.2在小、中模式中避免静态数据的远指针267

16.5.3不要通过全局句柄向其他应用程序传递数据268

16.5.4在任何模式下均不能假定句柄与远指针之间的关系269

16.5.5除了Windows或DOS提供的值之外,不要向段寄存器装入其他值269

16.5.6不要对段执行算术运算269

16.5.7不要对段地址进行比较269

16.5.8读写不要越过内存对象的尾部269

16.6管理程序代码的内存269

16.6.1使用代码段的属性270

16.6.2使用多个代码段270

16.6.3均衡代码段270

16.6.4.DEF文件中代码段的接入顺序271

16.7小结271

第17章打印设置272

17.1Windows如何管理打印设置272

17.1.1打印设置与结构DEVMODE273

17.1.2打印设置与打印机环境273

17.2使用设备驱动程序的函数274

17.3获取打印机驱动程序的能力275

17.4处理打印设置275

17.4.1函数ExtDeviceMode的输入与输出276

17.4.2获得打印设置的拷贝277

17.4.3改变打印设置277

17.4.4用CreateDC进行打印设置278

17.4.5改变打印设置而不影响其它应用程序279

17.4.6提示用户改变打印设置280

17.5在驱动程序间拷贝打印设置281

17.6维护应用程序自己的打印设置282

17.7使用旧式打印机驱动程序282

17.8小结282

第18章字体283

18.1输出正文283

18.2输出字体时使用彩色283

18.3使用库存字体284

18.4创建一种逻辑字体285

18.5一行中使用多种字体286

18.6获取所选字体的有关信息287

18.7获取逻辑字体的有关信息288

18.8枚举字体289

18.9检查设备的文本能力290

18.10增加字体资源292

18.11设置文本调整292

18.12创建字体资源文件293

18.12.1创建字体文件293

18.12.2创建字体资源描述293

18.12.3创建哑代模块(DummyCodeModule)294

18.12.4创建模块定义文件294

18.12.5编译与连接字体资源文件295

18.13一个示例应用程序:showFont295

18.14小结296

第19章调色板297

19.1调色板的用途297

19.2调色板如何工作297

19.3创建和使用逻辑调色板299

19.3.1创建LOGPALETTE数据结构299

19.3.2创建逻辑调色板302

19.3.3将调色板选入设备描述表302

19.3.4实现调色板302

19.4用调色板上的颜色绘图302

19.4.1直接指定调色板颜色302

19.4.2间接指定调色板颜色303

19.4.3绘位图时使用调色板304

19.5改变逻辑调色板305

19.6对于系统调色板所作改变的响应306

19.6.1对WM—QUERYNEWPALETTE的响应307

19.6.2对WM—PALETTECHANGED的响应307

19.7小结308

第20章动态连接库310

20.1何谓DLL310

20.1.1输入库与DLL310

20.1.2DLL模块与应用程序模块311

20.1.3 DLL与任务312

20.1.4 DLL与栈312

20.1.5 Windows如何找到DLL313

20.2何时使用用户DLL313

20.2.1应用程序之间共享代码与资源313

20.2.2为不同市场定制应用程序314

20.2.3Windows的钩子函数315

20.2.4设备驱动程序315

20.2.5用户控制316

20.2.6项目管理322

20.3创建一个DLL322

20.3.1建立C语言源文件323

20.3.2建立模块定义文件328

20.3.3建立Make文件328

20.4应用程序访问DLL代码331

20.4.1创建一个库函数的原型331

20.4.2输入库函数331

20.5Windows的对象拥有权原则333

20.6一个示例库:Select334

20.6.1创建库函数334

20.6.2创建初始化例程339

20.6.3建立Exit例程339

20.6.4建立模块定义文件340

20.6.5建立包含文件340

20.6.6编译与连接340

20.7小结341

第21章多文档界面342

21.1 MDI应用程序的结构342

21.2初始化M DI应用程序342

21.2.1注册窗口类343

21.2.2建立窗口343

21.3编写主消息循环344

21.4编写框架窗口函数345

21.5编写子窗口函数345

21.6数据与子窗口的对应345

21.6.1将数据存储在窗口结构中346

21.6.2使用窗口特性(Propetyy)346

21.7控制子窗口346

21.7.1创建子窗口346

21.7.2消除子窗口347

21.7.3激活与钝化子窗口347

21.8小结348

第22章动态数据交换349

22.1Windows中的数据交换349

22.1.1用写字板交换数据349

22.1.2动态连接库349

22.1.3动态数据交换349

22.1.4 Windows DDE的使用350

22.1.5用户眼中的DDE350

22.2DDE的概念350

22.2.1客户、服务员与会话350

22.2.2应用程序、主题和项351

22.2.3永久性(“热”或“暖”)数据链路351

22.3 DDE消息351

22.4DDE消息流352

22.4.1启动一次会话352

22.4.2传送单个项354

22.4.3建立永久性数据链路358

22.4.4在远程应用程序中执行命令363

22.4.5结束一次会话365

22.5 DDE客户与服务员应用程序示例366

22.6小结367

1991《Microsoft Windows 3.0 SDK 程序设计指南》由于是年代较久的资料都绝版了,几乎不可能购买到实物。如果大家为了学习确实需要,可向博主求助其电子版PDF文件(由宋明华,童长忠译 1991 微宏电脑软件研究所 出版的版本) 。对合法合规的求助,我会当即受理并将下载地址发送给你。