注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络软件与程序设计.NETProgramming Windows with C#(影印版)

Programming Windows with C#(影印版)

Programming Windows with C#(影印版)

定 价:¥188.00

作 者: Charles Petzold
出版社: Microsoft Press
丛编项: Microsoft.net
标 签: C#

ISBN: 9787506254625 出版时间: 2002-06-01 包装:
开本: 16开 页数: 1290 字数:  

内容简介

  Look it up in Petzold" remains the last word on Windows development. In this .NET ready Windows programming guide, the best-selling author shows you how to get the most out of Windows Forms-the next-generation Windows programming class library. You'll discover how to use C# to create dynamic user interFaces and graphical outputs for Windows applications. With dozens of examples of client applications written in C# to illustrate common techniques and plenty of no-nonsense advice on best programming practices, you'II be C# sharp in no time.

作者简介

  Charles Petzold1994年5月,Petzold作为仅有的七个人之一(并且是唯一的作家)被《Window Magazine》和Microsoft公司授予Windows Pioneer奖,以表彰他对 Microsoft Windows的成功做出的贡献。Charles Petzold从1984年开始编写个人计算机程序,从1985年开始编写 Microsoft Windows程序。他在《Microsoft Systems Joumal》1986年 12月号上发表了第一篇关于Windows程序设计的杂志论文。从1986年到1995年,他为《PC Magazine》撰写“Environments”专栏,给读者介绍了Windows和OS/2程序设计的许多方面。>>更多作品

图书目录

1 Console Thyself 1</font><br></font><br>The C# Version 2</font><br>Anatomy of a Program 5</font><br>C# Namespaces 6</font><br>Console I/O 8</font><br>C# Data Types 10</font><br>Expressions and Operators 15</font><br>Conditions and Iterations 17</font><br>The Leap to Objects 21</font><br>Programming in the Key of C# 26</font><br>Static Methods 27</font><br>Exception Handling 29</font><br>Throwing Exceptions 31</font><br>Getting and Setting Properties 33</font><br>Constructors 36</font><br>Instances and Inheritance 40</font><br>A Bigger Picture 44</font><br>Naming Conventions 46</font><br>Beyond the Console 47</font><br></font><br>2 Hello, Windows Forms 49</font><br></font><br>The Message Box 52</font><br>The Form 58</font><br>Showing the Form 60</font><br>It’s an Application and We Want to Run It 62</font><br>Variations on a Theme 64</font><br>Form Properties 65</font><br>Event-Driven Input 67</font><br>Handling the Paint Event 69</font><br>Displaying Text 72</font><br>The Paint Event Is Special! 77</font><br>Multiple Forms, Multiple Handlers 78</font><br>Inheriting Forms 81</font><br>The OnPaint Method 83</font><br>Does Main Belong Here? 84</font><br>Events and "On" Methods 86</font><br></font><br>3 Essential Structures 91</font><br></font><br>Classes and Structures 92</font><br>Two-Dimensional Coordinate Points 93</font><br>Arrays of Points 96</font><br>The Size Structure 96</font><br>The Float Versions 98</font><br>A Rectangle Is a Point and a Size 100</font><br>Rectangle Properties and Methods 101</font><br>A Nice-Sized Form 104</font><br>The Form and the Client 105</font><br>Point Conversions 109</font><br>The Color Structure 111</font><br>The 141 Color Names 112</font><br>Pens and Brushes 113</font><br>System Colors 115</font><br>The Known Colors 118</font><br>What to Use? 119</font><br>Getting a Feel for Repaints 120</font><br>Centering Hello World 122</font><br>Measuring the String 126</font><br>Text in a Rectangle 128</font><br></font><br>4 An Exercise in Text Output 133</font><br></font><br>System Information 133</font><br>Spacing Lines of Text 134</font><br>Property Values 135</font><br>Formatting into Columns 137</font><br>Everything Is an Object 140</font><br>Listing the System Information 144</font><br>Windows Forms and Scroll Bars 146</font><br>Scrolling a Panel Control 147</font><br>The Heritage of ScrollableControl 151</font><br>Scrolling Without Controls 153</font><br>Actual Numbers 155</font><br>Keeping It Green 157</font><br>Don’t Be a Pig 160</font><br>Reflecting on the Future 161</font><br></font><br>5 Lines, Curves, and Area Fills 169</font><br></font><br>How to Get a Graphics Object 170</font><br>Pens, Briefly 171</font><br>Straight Lines 172</font><br>An Introduction to Printing 174</font><br>Properties and State 180</font><br>Anti-Aliasing 181</font><br>Multiple Connected Lines 184</font><br>Curves and Parametric Equations 188</font><br>The Ubiquitous Rectangle 192</font><br>Generalized Polygons 194</font><br>Easier Ellipses 195</font><br>Arcs and Pies 196</font><br>Filling Rectangles, Ellipses, and Pies 203</font><br>Off by 1 204</font><br>Polygons and the Filling Mode 206</font><br></font><br>6 Tapping into the Keyboard 211</font><br></font><br>Ignoring the Keyboard 211</font><br>Who’s Got the Focus? 212</font><br>Keys and Characters 213</font><br>Keys Down and Keys Up 215</font><br>The Keys Enumeration 216</font><br>Testing the Modifier Keys 227</font><br>Reality Check 228</font><br>A Keyboard Interface for SysInfo 229</font><br>KeyPress for Characters 231</font><br>Control Characters 231</font><br>Looking at the Keys 232</font><br>Invoking the Win32 API 237</font><br>Handling Input from Foreign Keyboards 239</font><br>Input Focus 242</font><br>The Missing Caret 243</font><br>Echoing Key Characters 248</font><br>Right-to-Left Problems 252</font><br></font><br>7 Pages and Transforms 255</font><br></font><br>Device Independence Through Text 255</font><br>How Much Is That in Real Money? 256</font><br>Dots Per Inch 259</font><br>What’s with the Printer? 260</font><br>Manual Conversions 262</font><br>Page Units and Page Scale 264</font><br>Pen Widths 269</font><br>Page Transforms 272</font><br>Saving the Graphics State 273</font><br>Metrical Dimensions 274</font><br>Arbitrary Coordinates 278</font><br>What You Can’t Do 281</font><br>Hello, World Transform 282</font><br>The Big Picture 287</font><br>Linear Transforms 288</font><br>Introducing Matrixes 291</font><br>The Matrix Class 293</font><br>Shear and Shear Alike 295</font><br>Combining Transforms 297</font><br></font><br>8 Taming the Mouse 301</font><br></font><br>The Dark Side of the Mouse 302</font><br>Ignoring the Mouse 303</font><br>Some Quick Definitions 303</font><br>Information About the Mouse 304</font><br>The Mouse Wheel 305</font><br>The Four Basic Mouse Events 306</font><br>Doing the Wheel 309</font><br>Mouse Movement 313</font><br>Tracking and Capturing the Mouse 315</font><br>Adventures in Tracking 318</font><br>Generalizing Code with Interfaces 326</font><br>Clicks and Double-Clicks 330</font><br>Mouse-Related Properties 331</font><br>Entering, Leaving, Hovering 332</font><br>The Mouse Cursor 334</font><br>An Exercise in Hit-Testing 342</font><br>Adding a Keyboard Interface 344</font><br>Putting the Children to Work 346</font><br>Hit-Testing Text 351</font><br>Scribbling with the Mouse 353</font><br></font><br>9 Text and Fonts 359</font><br></font><br>Fonts Under Windows 359</font><br>Talking Type 360</font><br>Font Heights and Line Spacing 363</font><br>Default Fonts 365</font><br>Variation on a Font 366</font><br>Creating Fonts by Name 368</font><br>A Point Size by Any Other Name… 373</font><br>Clash of the Units 378</font><br>Font Properties and Methods 380</font><br>New Fonts from FontFamily 386</font><br>Understanding the Design Metrics 389</font><br>Arrays of Font Families 393</font><br>Font Collections 399</font><br>Variations on DrawString 401</font><br>Anti-Aliased Text 403</font><br>Measuring the String 405</font><br>The StringFormat Options 406</font><br>Grid Fitting and Text Fitting 408</font><br>Horizontal and Vertical Alignment 411</font><br>The Hotkey Display 416</font><br>A Clip and a Trim 418</font><br>Start a Tab 425</font><br></font><br>10 The Timer and Time 433</font><br></font><br>The Timer Class 434</font><br>The DateTime Structure 438</font><br>Local Time and Universal Time 440</font><br>The Tick Count 443</font><br>Calendars Around the World 446</font><br>A Readable Rendition 448</font><br>A Simple Culture-Specific Clock 454</font><br>The Retro Look 459</font><br>An Analog Clock 463</font><br>A Little Puzzle Called Jeu de Taquin 470</font><br></font><br>11 Images and Bitmaps 477</font><br></font><br>Bitmap Support Overview 479</font><br>Bitmap File Formats 480</font><br>Loading and Drawing 485</font><br>Image Information 490</font><br>Rendering the Image 495</font><br>Fitting to a Rectangle 498</font><br>Rotate and Shear 503</font><br>Displaying Part of the Image 505</font><br>Drawing on the Image 510</font><br>More on the Image Class 515</font><br>The Bitmap Class 518</font><br>Hello World with a Bitmap 520</font><br>The Shadow Bitmap 522</font><br>Binary Resources 524</font><br>Animation 530</font><br>The Image List 536</font><br>The Picture Box 540</font><br></font><br>12 Buttons and Labels and Scrolls (Oh My!) 545</font><br></font><br>Buttons and Clicks 546</font><br>Keyboard and Mouse 550</font><br>Control Issues 551</font><br>Deeper into Buttons 552</font><br>Appearance and Alignment 555</font><br>Buttons with Bitmaps 559</font><br>Multiple Handlers or One? 562</font><br>Drawing Your Own Buttons 562</font><br>Dropping Anchor 566</font><br>Dock Around the Clock 570</font><br>Children of the Form 573</font><br>Z-Order 576</font><br>The Check Box 577</font><br>The Three-State Alternative 581</font><br>The Label Control 582</font><br>Tab Stops and Tab Order 585</font><br>Identifying the Controls 586</font><br>The Auto-Scale Option 589</font><br>A Hexadecimal Calculator 595</font><br>Radio Buttons and Group Boxes 599</font><br>Scroll Bars 603</font><br>The Track Bar Alternative 612</font><br></font><br>13 Béziers and Other Splines 619</font><br></font><br>The Bézier Spline in Practice 620</font><br>A More Stylish Clock 625</font><br>Collinear Béziers 627</font><br>Circles and Arcs with Béziers 629</font><br>Bézier Art 632</font><br>The Mathematical Derivation 634</font><br>The Canonical Spline 638</font><br>Canonical Curve Derivation 645</font><br></font><br>14 Menus 649</font><br></font><br>Menus and Menu Items 649</font><br>Menu Shortcut Keys 653</font><br>Your First Menu 655</font><br>Unconventional Menus 658</font><br>MenuItem Properties and Events 660</font><br>Checking the Items 663</font><br>Working with Context Menus 667</font><br>The Menu Item Collection 670</font><br>The Standard Menu (A Proposal) 676</font><br>The Owner-Draw Option 681</font><br></font><br>15 Paths, Regions, and Clipping 691</font><br></font><br>A Problem and Its Solution 691</font><br>The Path, More Formally 696</font><br>Creating the Path 699</font><br>Rendering the Path 703</font><br>Path Transforms 707</font><br>Other Path Modifications 710</font><br>Clipping with Paths 718</font><br>Clipping Bitmaps 723</font><br>Regions and Clipping 727</font><br></font><br>16 Dialog Boxes 729</font><br></font><br>Your First Modal Dialog Box 730</font><br>Modal Dialog Box Termination 735</font><br>Accept and Cancel 737</font><br>Screen Location 738</font><br>The About Box 742</font><br>Defining Properties in Dialog Boxes 745</font><br>Implementing an Apply Button 750</font><br>The Modeless Dialog Box 754</font><br>The Common Dialog Boxes 758</font><br>Choosing Fonts and Colors 759</font><br>Using the Windows Registry 766</font><br>The Open File Dialog Box 771</font><br>The Save File Dialog Box 778</font><br></font><br>17 Brushes and Pens 783</font><br></font><br>Filling in Solid Colors 784</font><br>Hatch Brushes 784</font><br>The Rendering Origin 794</font><br>Texture Brushes 797</font><br>Linear Gradient Brushes 802</font><br>Path Gradient Brushes 812</font><br>Tiling the Brush 816</font><br>Pens Can Be Brushes Too 824</font><br>A Dash of Style 828</font><br>Caps and Joins 831</font><br></font><br>18 Edit, List, and Spin 839</font><br></font><br>Single-Line Text Boxes 839</font><br>Multiline Text Boxes 844</font><br>Cloning Notepad 847</font><br>The Notepad Clone with File I/O 853</font><br>Notepad Clone Continued 862</font><br>Special-Purpose Text Boxes 878</font><br>The Rich Text Box 879</font><br>ToolTips 880</font><br>The List Box 888</font><br>List Box + Text Box = Combo Box 895</font><br>Up-Down Controls 901</font><br></font><br>19 Font Fun 913</font><br></font><br>Getting Started 913</font><br>Brushed Text 915</font><br>Font Transforms 922</font><br>Text and Paths 934</font><br>Nonlinear Transforms 948</font><br></font><br>20 Toolbars and Status Bars 955</font><br></font><br>The Basic Status Bar 956</font><br>The Status Bar and Auto-Scroll 958</font><br>Status Bar Panels 961</font><br>StatusBarPanel Properties 964</font><br>Menu Help 967</font><br>The Basic Toolbar 975</font><br>Toolbar Variations 979</font><br>Toolbar Events 982</font><br>Toolbar Styles 988</font><br></font><br>21 Printing 997</font><br></font><br>Printers and Their Settings 998</font><br>Page Settings 1006</font><br>Defining a Document 1010</font><br>Handling PrintDocument Events 1012</font><br>The Page Dimensions 1018</font><br>The Print Controller 1022</font><br>Using the Standard Print Dialog Box 1027</font><br>Setting Up the Page 1032</font><br>Print Preview 1036</font><br></font><br>22 Tree View and List View 1045</font><br></font><br>Splitsville 1045</font><br>Tree Views and Tree Nodes 1060</font><br>Images in Tree Views 1064</font><br>Tree View Events 1066</font><br>Node Navigation 1068</font><br>The Directory Tree 1070</font><br>Displaying Images 1076</font><br>List View Basics 1084</font><br>List View Events 1091</font><br></font><br>23 Metafiles 1101</font><br></font><br>Loading and Rendering Existing Metafiles 1102</font><br>Metafile Sizes and Rendering 1104</font><br>Converting Metafiles to Bitmaps 1112</font><br>Creating New Metafiles 1114</font><br>The Metafile Boundary Rectangle 1122</font><br>Metafiles and the Page Transform 1125</font><br>The Metafile Type 1128</font><br>Enumerating the Metafile 1130</font><br></font><br>24 Clip, Drag, and Drop 1139</font><br></font><br>Items and Formats 1140</font><br>The Tiny (But Powerful) Clipboard Class 1140</font><br>Getting Objects from the Clipboard 1142</font><br>Clipboard Data Formats 1151</font><br>Clipboard Viewers 1161</font><br>Setting Multiple Clipboard Formats 1171</font><br>Drag and Drop 1175</font><br></font><br>APPENDIX A Files and Streams 1185</font><br></font><br>The Most Essential File I/O Class 1185</font><br>FileStream Properties and Methods 1187</font><br>The Problem with FileStream 1191</font><br>Other Stream Classes 1192</font><br>Reading and Writing Text 1193</font><br>Binary File I/O 1200</font><br>The Environment Class 1204</font><br>File and Path Name Parsing 1206</font><br>Parallel Classes 1208</font><br>Working with Directories 1209</font><br>File Manipulation and Information 1215</font><br></font><br>APPENDIX B Math Class 1219</font><br></font><br>Numeric Types 1219</font><br>Checking Integer Overflow 1220</font><br>The Decimal Type 1222</font><br>Floating-Point Infinity and NaNs 1224</font><br>The Math Class 1226</font><br>Floating-Point Remainders 1228</font><br>Powers and Logarithms 1229</font><br>Trigonometric Functions 1230</font><br></font><br>APPENDIX C String Theory 1233</font><br></font><br>The char Type 1235</font><br>String Constructors and Properties 1237</font><br>Copying Strings 1239</font><br>Converting Strings 1240</font><br>Concatenating Strings 1240</font><br>Comparing Strings 1242</font><br>Searching the String 1245</font><br>Trimming and Padding 1247</font><br>String Manipulation 1249</font><br>Formatting Strings 1249</font><br>Array Sorting and Searching 1250</font><br>The StringBuilder Class 1252</font><br></font><br>INDEX

本目录推荐