Windows程序设计(英文版)(第5版)(套装上下册)(图灵程序设计丛书·微软技术系列)
分類: 图书,计算机与互联网,操作系统,Microsoft Windows,Windows 编程开发,
品牌: Charles Petzold
基本信息·出版社:人民邮电出版社
·页码:1200 页
·出版日期:2009年
·ISBN:7115193150/9787115193155
·条形码:9787115193155
·包装版本:1版
·装帧:平装
·开本:16
·正文语种:英语
·丛书名:图灵程序设计丛书·微软技术系列
·套装数量:2
产品信息有问题吗?请帮我们更新产品信息。
内容简介《Windows程序设计》(英文版)(第5版)(套装上下册)是Windows 程序设计方面不可替代的权威著作,由著名技术大师Charles Petzold 编写。书中涵盖了从基本输入输出、对话框、图形、内核、多线程、网络编程等Win32 程序设计的核心内容。《Windows程序设计》是各层次Windows 程序员的必备参考书。 相关资源:有经验的Windows程序员都知道,如果在工作中遇到了技术难题,最好的解决办法就是去查Petzold的书。是的,《Windows程序设计》内容博大精深,阐述透彻流畅,是毋庸置疑的Windows程序设计的权威著作,也是享誉世界的微软技术大师、Windows先驱奖得主Charles Petzold的代表作。多少年来,一代又一代Windows程序员受惠于《Windows程序设计》,无数在Windows上运行的程序都不同程度地受到了《Windows程序设计》的影响。今天,Win32 API之上已经有了各种框架使我们的开发工作更加方便,但是Petzold著作的魅力不减,仍然在不断重印。原因很简单,正如一位读者说的,Win32 API依旧是Windows的基础,不经过《Windows程序设计》的洗礼,你很难说自己已经真正进入Windows程序设计技术的圣殿。上册:《Windows程序设计》分上下两册装订,本册讲述了Windows编程中的基础知识,包括键盘、鼠标、 Unicode、菜单、对话框等内容,通过具有代表性的示例为开发人员提供了基本的指导。书中代码可以在图灵网站www.turingbook.com《Windows程序设计》网页免费注册下载。下册:
《Windows程序设计》分上下两册装订,本册讲述了Windows编程中较高级的主题,包括图形、打印机、声音和音乐、动态链接库、多任务和多线程、多文档界面等内容,为开发人员提供了更全面的编程指导。书中代码可以在图灵网站www.turingbook.com《Windows程序设计》网页免费注册下载。
作者简介Charles Petzold微软技术领域的大师级专家。他的著作和文章为Wiridows程序设计技术的推广和普及作出了巨大贡献。1994年被微软公司授予“Windows先驱奖”,是全球唯一获此殊荣的技术作家。他也是资格最老的微软MVP之一。除本书外,他撰写的The Annotated Tunng(中文版将由人民邮电出版社出版)和Code等书也是脍炙人口的名著。
媒体推荐“Windows程序设计最举足轻重的书当然就是Charles Petzold的Programming Windows。你还没有读过吗?晕,赶快去买一本!”
——Windows Tech Journal
“本书让你如入宝山,奇珍异宝俯拾皆是。我本人从中获益良多。”
——Andrew Schulman,著名技术作家,传奇著作Undocumented Windows作者
编辑推荐《Windows程序设计》(英文版)(第5版)(套装上下册)Windows程序设计“圣经”,十年依旧畅销不衰的神品,传奇大师带你走入Windows编程圣殿
有经验的Windows程序员都知道,如果在工作中遇到了技术难题。最好的解决办法就是去查Petzold的书。是的,《Windows程序设计》内容博大精深。阐述透彻流畅,是毋庸置疑的Windows程序设计的权威著作,也是享誉世界的微软技术大师、Windows先驱奖得主Charles Petzold的代表作。多少年来,一代又一代Windows程序员受惠于《Windows程序设计》,无数在Windows上运行的程序都不同程度地受到了《Windows程序设计》的影响。
今天,Win32 API之上已经有了各种框架使我们的开发工作更加方便。但是Petzold著作的魅力不减。仍然在不断重印。原因很简单。正如一位读者说的,Win32 API依旧是Windows的基础。不经过《Windows程序设计》的洗礼,你很难说自己已经真正进入Windows程序设计技术的圣殿。
目录
上册
Section IThe Basics
Chapter 1Getting Started3
The Windows Environment4
A History of Windows4
Aspects of Windows6
Dynamic Linking8
Windows Programming Options9
APIs and Memory Models9
Language Options10
The Programming Environment11
API Documentation12
Your First Windows Program13
A Character-Mode Model13
The Windows Equivalent14
The Header Files15
Program Entry Point15
The MessageBox Function16
Compile, Link, and Run18
Chapter 2An Introduction to Unicode19
A Brief History of Character Sets20
American Standards20
The World Beyond21
Extending ASCII22
Double-Byte Character Sets24
Unicode to the Rescue25
Wide Characters and C26
The char Data Type26
Wider Characters27
Wide-Character Library Functions28
Maintaining a Single Source29
Wide Characters and Windows31
Windows Header File Types31
The Windows Function Calls33
Windows?String Functions34
Using printf in Windows34
A Formatting Message Box37
Internationalization and This Book38
Chapter 3Windows and Messages41
A Window of One抯 Own41
An Architectural Overview42
The HELLOWIN Program44
Thinking Globally47
Registering the Window Class51
Creating the Window57
Displaying the Window59
The Message Loop60
The Window Procedure62
Processing the Messages62
Playing a Sound File63
The WM_PAINT Message64
The WM_DESTROY Message66
The Windows Programming Hurdles66
Don’t Call Me, I'll Call You66
Queued and Nonqueued Messages68
Get In and Out Fast70
Chapter 4An Exercise in Text Output71
Painting and Repainting72
The WM_PAINT Message72
Valid and Invalid Rectangles74
An Introduction to GDI74
The Device Context75
Getting a Device Context Handle: Method One75
The Paint Information Structure77
Getting a Device Context Handle: Method Two79
TextOut: The Details80
The System Font82
The Size of a Character82
Text Metrics: The Details83
Formatting Text85
Putting It All Together86
The SYSMETS1.C Window Procedure94
Not Enough Room95
The Size of the Client Area95
Scroll Bars97
Scroll Bar Range and Position99
Scroll Bar Messages100
Scrolling SYSMETS102
Structuring Your Program for Painting107
Building a Better Scroll108
The Scroll Bar Information Functions108
How Low Can You Scroll?110
The New SYSMETS111
But I Don’t Like to Use the Mouse118
Chapter 5Basic Drawing121
The Structure of GDI121
The GDI Philosophy121
The GDI Function Calls123
The GDI Primitives124
Other Stuff125
The Device Context126
Getting a Device Context Handle126
Getting Device Context Information128
The DEVCAPS1 Program129
The Size of the Device133
Finding Out About Color138
The Device Context Attributes140
Saving Device Contexts142
Drawing Dots and Lines143
Setting Pixels143
Straight Lines144
The Bounding Box Functions149
Bezier Splines156
Using Stock Pens161
Creating, Selecting, and Deleting Pens162
Filling in the Gaps165
Drawing Modes166
Drawing Filled Areas168
The Polygon Function and the Polygon-Filling Mode169
Brushing the Interior174
The GDI Mapping Mode176
Device Coordinates and Logical Coordinates177
The Device Coordinate Systems178
The Viewport and the Window179
Working with MM_TEXT181
The Metric Mapping Modes183
The “Roll Your Own” Mapping Modes187
The WHATSIZE Program192
Rectangles, Regions, and Clipping196
Working with Rectangles196
Random Rectangles198
Creating and Painting Regions202
Clipping with Rectangles and Regions204
The CLOVER Program205
Chapter 6The Keyboard211
Keyboard Basics211
Ignoring the Keyboard212
Who's Got the Focus?212
Queues and Synchronization213
Keystrokes and Characters214
Keystroke Messages214
System and Nonsystem Keystrokes215
Virtual Key Codes216
The lParam Information219
Shift States221
Using Keystroke Messages222
Enhancing SYSMETS for the Keyboard223
Character Messages231
The Four Character Messages232
Message Ordering233
Control Character Processing234
Dead-Character Messages235
Keyboard Messages and Character Sets236
The KEYVIEW1 Program236
The Foreign-Language Keyboard Problem242
Character Sets and Fonts244
What About Unicode?255
TrueType and Big Fonts256
The Caret (Not the Cursor)263
The Caret Functions264
The TYPER Program265
Chapter 7The Mouse273
Mouse Basics274
Some Quick Definitions274
The Plural of Mouse Is?275
Client-Area Mouse Messages276
Simple Mouse Processing: An Example277
Processing Shift Keys281
Mouse Double-Clicks283
Nonclient-Area Mouse Messages284
The Hit-Test Message285
Messages Beget Messages286
Hit-Testing in Your Programs287
A Hypothetical Example287
A Sample Program288
Emulating the Mouse with the Keyboard291
Add a Keyboard Interface to CHECKER293
Using Child Windows for Hit-Testing297
Child Windows in CHECKER297
Child Windows and the Keyboard303
Capturing the Mouse309
Blocking Out a Rectangle309
The Capture Solution313
The BLOKOUT2 Program314
The Mouse Wheel318
Still to Come326
Chapter 8The Timer327
Timer Basics328
The System and the Timer328
Timer Messages Are Not Asynchronous329
Using the Timer: Three Methods330
Method One330
Method Two334
Method Three337
Using the Timer for a Clock338
Building a Digital Clock338
Getting the Current Time343
Displaying Digits and Colons344
Going International344
Building an Analog Clock346
Using the Timer for a Status Report351
Chapter 9Child Window Controls357
The Button Class359
Creating the Child Windows363
The Child Talks to Its Parent365
The Parent Talks to Its Child366
Push Buttons367
Check Boxes368
Radio Buttons369
Group Boxes369
Changing the Button Text369
Visible and Enabled Buttons370
Buttons and Input Focus370
Controls and Colors371
System Colors372
The Button Colors373
The WM_CTLCOLORBTN Message374
Owner-Draw Buttons375
The Static Class382
The Scroll Bar Class383
The COLORS1 Program384
The Automatic Keyboard Interface392
Window Subclassing393
Coloring the Background393
Coloring the Scroll Bars and Static Text394
The Edit Class395
The Edit Class Styles398
Edit Control Notification399
Using the Edit Controls399
Messages to an Edit Control400
The Listbox Class401
List Box Styles401
Putting Strings in the List Box402
Selecting and Extracting Entries403
Receiving Messages from List Boxes404
A Simple List Box Application405
Listing Files409
A head for Windows411
Chapter 10Menus and Other Resources417
Icons, Cursors, Strings, and Custom Resources418
Adding an Icon to a Program418
Getting a Handle on Icons424
Using Icons in Your Program426
Using Customized Cursors427
Character String Resources428
Custom Resources430
Menus439
Menu Concepts440
Menu Structure440
Defining the Menu441
Referencing the Menu in Your Program441
Menus and Messages442
A Sample Program445
Menu Etiquette451
Defining a Menu the Hard Way452
Floating Popup Menus453
Using the System Menu459
Changing the Menu462
Other Menu Commands463
An Unorthodox Approach to Menus464
Keyboard Accelerators469
Why You Should Use Keyboard Accelerators469
Some Rules on Assigning Accelerators470
The Accelerator Table470
Loading the Accelerator Table471
Translating the Keystrokes471
Receiving the Accelerator Messages472
POPPAD with a Menu and Accelerators473
Enabling Menu Items480
Processing the Menu Options480
Chapter 11Dialog Boxes483
Modal Dialog Boxes484
Creating an “About” Dialog Box484
The Dialog Box and Its Template488
The Dialog Box Procedure491
Invoking the Dialog Box493
Variations on a Theme494
A More Complex Dialog Box497
Working with Dialog Box Controls505
The OK and Cancel Buttons507
Avoiding Global Variables509
Tab Stops and Groups510
Painting on the Dialog Box512
Using Other Functions with Dialog Boxes513
Defining Your Own Controls513
Modeless Dialog Boxes520
Differences Between Modal and Modeless Dialog Boxes521
The New COLORS Program523
HEXCALC: Window or Dialog Box?529
The Common Dialog Boxes538
POPPAD Revisited538
Unicode File I/O563
Changing the Font564
Search and Replace564
The One-Function-Call Windows Program565
Chapter 12The Clipboard567
Simple Use of the Clipboard568
The Standard Clipboard Data Formats568
Memory Allocation570
Transferring Text to the Clipboard572
Getting Text from the Clipboard573
Opening and Closing the Clipboard574
The Clipboard and Unicode575
Beyond Simple Clipboard Use581
Using Multiple Data Items581
Delayed Rendering583
Private Data Formats584
Becoming a Clipboard Viewer587
The Clipboard Viewer Chain587
Clipboard Viewer Functions and Messages587
A Simple Clipboard Viewer590
下册
Section IIMore Graphics
Chapter 13Using the Printer597
Printing Fundamentals598
Printing and Spooling598
The Printer Device Context602
The Revised DEVCAPS Program605
The PrinterProperties Call615
Checking for BitBlt Capability616
The Simplest Printing Program617
Printing Graphics and Text619
Bare-Bones Printing622
Canceling Printing with an Abort Procedure623
How Windows Uses AbortProc625
Implementing an Abort Procedure625
Adding a Printing Dialog Box628
Adding Printing to POPPAD633
Chapter 14Bitmaps and Bitblts641
Bitmap Basics641
Where Do Bitmaps Come From?642
Bitmap Dimensions643
Color and Bitmaps644
Real-World Devices 644
Bitmap Support in GDI647
The Bit-Block Transfer648
A Simple BitBlt648
Stretching the Bitmap652
The StretchBlt Mode656
The Raster Operations657
The Pattern Blt659
The GDI Bitmap Object662
Creating a DDB662
The Bitmap Bits665
The Memory Device Context666
Loading Bitmap Resources667
The Monochrome Bitmap Format671
Brushes from Bitmaps674
Drawing on Bitmaps677
The Shadow Bitmap682
Using Bitmaps in Menus687
Nonrectangular Bitmap Images701
Some Simple Animation707
Bitmaps Outside the Window711
Chapter 15The Device-Independent Bitmap723
The DIB File Format724
The OS/2-Style DIB725
Bottoms Up!728
The DIB Pixel Bits728
The Expanded Windows DIB730
Reality Check733
DIB Compression 734
Color Masking737
The Version 4 Header740
The Version 5 Header744
Displaying DIB Information746
Displaying and Printing755
Digging into the DIB755
Pixel to Pixel758
The Topsy-Turvy World of DIBs769
Sequential Display777
Stretching to Fit786
Color Conversion, Palettes, and Performance797
The Union of DIBs and DDBs799
Creating a DDB from a DIB799
From DDB to DIB808
The DIB Section808
More DIB Section Differences817
The File-Mapping Option818
In Summary820
Chapter 16The Palette Manager821
Using Palettes821
Video Hardware822
Displaying Gray Shades823
The Palette Messages831
The Palette Index Approach832
Querying the Palette Support836
The System Palette837
Other Palette Functions837
The Raster-Op Problem838
Looking at the System Palette839
Palette Animation850
The Bouncing Ball851
One-Entry Palette Animation859
Engineering Applications865
Palettes and Real-World Images870
Palettes and Packed DIBs870
The All-Purpose Palette883
The Halftone Palette890
Indexing Palette Colors896
Palettes and Bitmap Objects902
Palettes and DIB Sections909
A Library for DIBs915
The DIBSTRUCT Structure917
The Information Functions918
Reading and Writing Pixels927
Creating and Converting932
The DIBHELP Header File and Macros946
The DIBBLE Program949
Simple Palettes; Optimized Palettes975
Converting Formats991
Chapter 17Text and Fonts997
Simple Text Output997
The Text Drawing Functions997
Device Context Attributes for Text1000
Using Stock Fonts1002
Background on Fonts1002
The Types of Fonts1003
TrueType Fonts1004
Attributes or Styles?1005
The Point Size1005
Leading and Spacing1005
The Logical Inch Problem1006
The Logical Font1007
Logical Font Creation and Selection1007
The PICKFONT Program1009
The Logical Font Structure1026
The Font-Mapping Algorithm1030
Finding Out About the Font1031
Character Sets and Unicode1033
The EZFONT System1035
Font Rotation1044
Font Enumeration1046
The Enumeration Functions1046
The ChooseFont Dialog1047
Paragraph Formatting1057
Simple Text Formatting1058
Working with Paragraphs1059
Previewing Printer Output1069
The Fun and Fancy Stuff1082
The GDI Path1082
Extended Pens1083
Four Sample Programs1088
Chapter 18Metafiles1097
The Old Metafile Format1098
Simple Use of Memory Metafiles1098
Storing Metafiles on Disk1101
Old Metafiles and the Clipboard1102
Enhanced Metafiles1107
The Basic Procedure1107
Looking Inside1111
Metafiles and GDI Objects1118
Metafiles and Bitmaps1123
Enumerating the Metafile1127
Embedding Images1135
An Enhanced Metafile Viewer and Printer1139
Displaying Accurate Metafile Images1150
Scaling and Aspect Ratios1161
Mapping Modes in Metafiles1163
Mapping and Playing1166
Section IIIAdvanced Topics
Chapter 19The Multiple-Document Interface1173
MDI Concepts1173
The Elements of MDI1173
MDI Support1175
A Sample MDI Implementation1177
Three Menus1190
Program Initialization1191
Creating the Children1192
More Frame Window Message Processing1193
The Child Document Windows1194
Cleaning Up1196
Chapter 20Multitasking and Multithreading1197
Modes of Multitasking1198
Multitasking Under DOS?1198
Nonpreemptive Multitasking1198
PM and the Serialized Message Queue1200
The Multithreading Solution1200
Multithreaded Architecture1201
Thread Hassles1202
The Windows Advantage1202
New! Improved! Now with Threads!1203
Windows Multithreading1204
Random Rectangles Revisited1205
The Programming Contest Problem1208
The Multithreaded Solution1216
Any Problems?1226
The Benefits of Sleep1226
Thread Synchronization1227
The Critical Section1227
Event Signaling1229
The BIGJOB1 Program1230
The Event Object1235
Thread Local Storage1240
Chapter 21Dynamic-Link Libraries1243
Library Basics1243
Library: One Word, Many Meanings1244
A Simple DLL1245
The Library Entry and Exit Point1248
The Test Program1249
Shared Memory in DLLs1252
The STRPROG Program1258
Sharing Data Among STRPROG Instances1264
Miscellaneous DLL Topics1264
Dynamic Linking Without Imports1265
Resource-Only Libraries1266
Chapter 22Sound and Music1273
Windows and Multimedia1273
Multimedia Hardware1273
An API Overview1274
Exploring MCI with TESTMCI1275
MCITEXT and CD Audio1280
Waveform Audio1285
Sound and Waveforms1285
Pulse Code Modulation1286
The Sampling Rate1287
The Sample Size1287
Generating Sine Waves in Software1288
A Digital Sound Recorder1299
The MCI Alternative1312
The MCI Command String Approach1320
The Waveform Audio File Format1325
Experimenting with Additive Synthesis1326
Waking Up to Waveform Audio1336
MIDI and Music1345
The Workings of MIDI1345
The Program Change1347
The MIDI Channel1347
MIDI Messages1349
An Introduction to MIDI Sequencing1351
Playing a MIDI Synthesizer from the PC Keyboard1357
A MIDI Drum Machine1375
The Multimedia time Functions1399
RIFF File I/O1402
Chapter 23A Taste of the Internet1405
Windows Sockets1405
Sockets and TCP/IP1406
Network Time Services1406
The NETTIME Program1407
WinInet and FTP1421
Overview of the FTP API1421
The Update Demo1423
Index1437
……[看更多目录]
文摘插图: