MTU Cork Library Catalogue

Syndetics cover image
Image from Syndetics

Windows 2000 programming from the ground up / Herbert Schildt.

By: Schildt, Herbert.
Material type: materialTypeLabelBookPublisher: Berkley : Osborne McGraw-Hill, 2000Description: xviii, 782 p. : ill. ; 24 cm.ISBN: 0072121890.Subject(s): Microsoft Windows (Computer file) | Operating systems (Computers)DDC classification: 005.2768
Contents:
Windows 2000 Overview -- Windows 2000 Programming Fundamentals -- Application Essentials: Messages and Basic I/O -- Introducing Menus -- Dialog Boxes -- More controls -- Working with Bitmaps and Solving the Repaint Problem -- Working with Text -- Using graphics -- Introducing common controls and common dialog boxes -- More common controls: Up-down controls, Trackbars and Progress Bars -- Status Windows, Tab Controls, and the Tree-Views -- Property Sheets and Wizards -- Using the Header and Month Calendar Controls -- Thread-based Multitasking -- Using the two help systems -- Using the printer -- Using the system registry and creating screen savers -- Supercharging Menus -- DLLs and Security.
Holdings
Item type Current library Call number Copy number Status Date due Barcode Item holds
General Lending MTU Bishopstown Library Lending 005.2768 (Browse shelf(Opens below)) 1 Available 00075300
Total holds: 0

Enhanced descriptions from Syndetics:

A repugnant Amercian widow is killed during a trip to Petra...

Among the towering red cliffs of Petra, like some monstrous swollen Buddha, sat the corpse of Mrs Boynton. A tiny puncture mark on her wrist was the only sign of the fatal injection that had killed her.

With only 24 hours available to solve the mystery, Hercule Poirot recalled a chance remark he'd overheard back in Jerusalem: 'You see, don't you, that she's got to be killed?' Mrs Boynton was, indeed, the most detestable woman he'd ever met...

Includes index.

Windows 2000 Overview -- Windows 2000 Programming Fundamentals -- Application Essentials: Messages and Basic I/O -- Introducing Menus -- Dialog Boxes -- More controls -- Working with Bitmaps and Solving the Repaint Problem -- Working with Text -- Using graphics -- Introducing common controls and common dialog boxes -- More common controls: Up-down controls, Trackbars and Progress Bars -- Status Windows, Tab Controls, and the Tree-Views -- Property Sheets and Wizards -- Using the Header and Month Calendar Controls -- Thread-based Multitasking -- Using the two help systems -- Using the printer -- Using the system registry and creating screen savers -- Supercharging Menus -- DLLs and Security.

Table of contents provided by Syndetics

  • Preface (p. xv)
  • For Further Study (p. xvii)
  • 1 Windows 2000 Overview (p. 1)
  • What Is Windows 2000? (p. 2)
  • The Application Programming Interface (p. 3)
  • Dynamic Link Libraries (DLLs) (p. 4)
  • Windows 2000 Supports Multithreaded Multitasking (p. 4)
  • Multiple File Systems (p. 5)
  • Challenging but Rewarding (p. 6)
  • 2 Windows 2000 Programming Fundamentals (p. 7)
  • Two Ways to Program for Windows (p. 8)
  • Windows 2000 Programming Perspective (p. 9)
  • The Desktop Model (p. 9)
  • The Mouse (p. 10)
  • Icons, Bitmaps, and Graphics (p. 10)
  • Menus, Controls, and Dialog Boxes (p. 10)
  • The Components of a Window (p. 11)
  • How Windows and Your Program Interact (p. 11)
  • Some Windows 2000 Application Basics (p. 12)
  • WinMain() (p. 12)
  • The Window Procedure (p. 13)
  • Window Classes (p. 14)
  • The Message Loop (p. 14)
  • Windows Data Types (p. 14)
  • A Windows 2000 Skeleton (p. 15)
  • Defining the Window Class (p. 19)
  • Creating a Window (p. 22)
  • The Message Loop (p. 24)
  • The Window Function (p. 26)
  • Definition File No Longer Needed (p. 27)
  • Naming Conventions (p. 28)
  • 3 Application Essentials: Messages and Basic I/O (p. 31)
  • Message Boxes (p. 32)
  • Understanding Windows 2000 Messages (p. 35)
  • Responding to a Keypress (p. 37)
  • A Closer Look at Keyboard Messages (p. 41)
  • More Keyboard Messages (p. 46)
  • Outputting Text to a Window (p. 46)
  • Device Contexts (p. 52)
  • Processing the WM_PAINT Message (p. 52)
  • Generating a WM_PAINT Message (p. 58)
  • Responding to Mouse Messages (p. 63)
  • A Closer Look at Mouse Messages (p. 67)
  • Using Button-Up Messages (p. 68)
  • Responding to a Double Click (p. 68)
  • More Messages (p. 73)
  • 4 Introducing Menus (p. 75)
  • Menu Basics (p. 76)
  • Resources (p. 77)
  • Compiling RC Files (p. 77)
  • Creating a Simple Menu (p. 77)
  • Including a Menu in Your Program (p. 81)
  • Responding to Menu Selections (p. 81)
  • A Sample Menu Program (p. 82)
  • Adding Menu Accelerator Keys (p. 86)
  • Loading the Accelerator Table (p. 89)
  • Translating Accelerator Keys (p. 90)
  • Trying Accelerator Keys (p. 90)
  • Non-Menu Accelerator Keys (p. 92)
  • Overriding the Class Menu (p. 96)
  • An Example that Overrides the Class Menu (p. 97)
  • More Menus to Come (p. 103)
  • 5 Dialog Boxes (p. 105)
  • Dialog Boxes Use Controls (p. 106)
  • Modal vs. Modeless Dialog Boxes (p. 107)
  • Receiving Dialog Box Messages (p. 107)
  • Activating a Dialog Box (p. 108)
  • Deactivating a Dialog Box (p. 109)
  • Creating a Simple Dialog Box (p. 109)
  • The Dialog Box Resource File (p. 109)
  • The Dialog Box Window Function (p. 112)
  • A First Dialog Box Sample Program (p. 113)
  • Adding a List Box (p. 118)
  • List Box Basics (p. 119)
  • Initializing the List Box (p. 121)
  • Processing a Selection (p. 122)
  • Adding an Edit Box (p. 124)
  • The Entire Modal Dialog Box Program (p. 127)
  • Using a Modeless Dialog Box (p. 133)
  • Creating a Modeless Dialog Box (p. 136)
  • 6 More Controls (p. 145)
  • Scroll Bars (p. 146)
  • Activating the Standard Scroll Bars (p. 146)
  • Receiving Scroll Bar Messages (p. 146)
  • SetScrollinfo() and GetScrollinfo() (p. 148)
  • Working with Scroll Bars (p. 149)
  • A Sample Scroll Bar Program (p. 150)
  • Using a Scroll Bar Control (p. 157)
  • Creating a Scroll Bar Control (p. 157)
  • Demonstrating a Scroll Bar Control (p. 158)
  • Check Boxes (p. 166)
  • Obtaining the State of a Check Box (p. 167)
  • Checking a Check Box (p. 167)
  • Check Box Messages (p. 168)
  • Radio Buttons (p. 169)
  • Demonstrating Check Boxes, Radio Buttons, and Scroll Bars (p. 170)
  • Generating Timer Messages (p. 170)
  • The Countdown Timer Resource and Header Files (p. 171)
  • The Countdown Timer Program (p. 173)
  • A Closer Look at the Countdown Program (p. 178)
  • Static Controls (p. 180)
  • 7 Working with Bitmaps and Solving the Repaint Problem (p. 185)
  • Two Types of Bitmaps (p. 186)
  • Two Ways to Obtain a Bitmap (p. 186)
  • Using a Bitmap Resource (p. 187)
  • Creating a Bitmap Resource (p. 187)
  • Displaying a Bitmap (p. 188)
  • Deleting a Bitmap (p. 191)
  • The Complete Bitmap Example Program (p. 192)
  • Creating a Bitmap Dynamically (p. 196)
  • Using a Dynamically Created Bitmap (p. 196)
  • Solving the Repaint Problem (p. 201)
  • Some Additional API Functions (p. 202)
  • Creating and Using a Virtual Window (p. 203)
  • The Entire Virtual Window Demonstration Program (p. 205)
  • Improving Repaint Efficiency (p. 210)
  • A Closer Look at BeginPaint() (p. 211)
  • Reducing Virtual Window Repaint Time (p. 211)
  • Creating a Custom Icon and Cursor (p. 213)
  • Defining Icons and Cursors (p. 213)
  • Loading Your Icons and Cursor (p. 216)
  • A Sample Program that Demonstrates a Custom Icon and Cursor (p. 216)
  • Using Loadlmage() (p. 219)
  • 8 Working with Text (p. 221)
  • Window Coordinates (p. 222)
  • Setting the Text and Background Color (p. 223)
  • Setting the Background Display Mode (p. 224)
  • Obtaining the Text Metrics (p. 224)
  • Computing the Length of a String (p. 227)
  • A Short Text Demonstration (p. 228)
  • Working with Fonts (p. 233)
  • Fonts, Families, Typefaces, and Styles (p. 233)
  • Raster, Vector, and TrueType Fonts (p. 234)
  • Using Built-in Fonts (p. 234)
  • Creating Custom Fonts (p. 242)
  • Using CreateFontIndirect() (p. 250)
  • Rotating Text (p. 251)
  • Enumerating Fonts (p. 255)
  • A Font Enumeration Program (p. 257)
  • 9 Using Graphics (p. 267)
  • The Graphics Coordinate System (p. 268)
  • Pens and Brushes (p. 268)
  • Setting a Pixel (p. 269)
  • Drawing a Line (p. 269)
  • Setting the Current Location (p. 269)
  • Drawing an Arc (p. 270)
  • Displaying Rectangles (p. 270)
  • Drawing Ellipses and Pie Slices (p. 271)
  • Working with Pens (p. 272)
  • Creating Custom Brushes (p. 274)
  • Deleting Custom Pens and Brushes (p. 275)
  • Setting the Output Mode (p. 275)
  • A Graphics Demonstration (p. 277)
  • A Closer Look at the Paint Program (p. 286)
  • Using World Transforms (p. 289)
  • Coordinate Spaces (p. 289)
  • SetWorldTransform() (p. 290)
  • Setting the Graphics Mode (p. 291)
  • Adding Rotation to the Paint Program (p. 292)
  • A Closer Look at the Rotation Mechanism (p. 302)
  • Things to Try (p. 303)
  • Mapping Modes and Viewports (p. 304)
  • Setting the Mapping Mode (p. 304)
  • Defining Window Extents (p. 305)
  • Defining a Viewport (p. 306)
  • Setting the Viewport Origin (p. 307)
  • A Viewport and Mapping Mode Demonstration Program (p. 307)
  • Experiment with the GDI (p. 311)
  • 10 Introducing Common Controls and Common Dialog Boxes (p. 313)
  • The Common Controls (p. 314)
  • Including and Initializing the Common Controls (p. 316)
  • Common Controls Are Windows (p. 318)
  • Using a Toolbar (p. 318)
  • Adding Tooltips (p. 322)
  • Creating a Toolbar Bitmap (p. 324)
  • A Toolbar Sample Program (p. 326)
  • A Closer Look at the Toolbar Program (p. 338)
  • Introducing the Common Dialogs (p. 339)
  • GetOpenFileName() and GetSaveFileName() (p. 342)
  • A Short Word on Using Files in a Windows 2000 Program (p. 347)
  • 11 More Common Controls: Up-Down Controls, Trackbars, and Progress Bars (p. 349)
  • Up-Down Controls (p. 350)
  • Creating an Up-Down Control (p. 351)
  • Receiving Up-Down Control Messages (p. 351)
  • Sending Up-Down Control Messages (p. 352)
  • Creating a Spin Control (p. 352)
  • Using a Trackbar (p. 353)
  • Trackbar Styles (p. 354)
  • Sending Trackbar Messages (p. 355)
  • Processing Trackbar Notification Messages (p. 356)
  • Using a Progress Bar (p. 357)
  • Demonstrating a Spin Control, Trackbar, and Progress Bar (p. 359)
  • Creating the Spin Control, Trackbar, and Progress Bar (p. 369)
  • Managing the Spin Control (p. 371)
  • Managing the Trackbar (p. 371)
  • Managing the Progress Bar (p. 373)
  • Large Reward, Little Effort (p. 374)
  • 12 Status Windows, Tab Controls, and the Tree-Views (p. 377)
  • Using a Status Window (p. 378)
  • Creating a Status Window (p. 378)
  • Status Window Messages (p. 379)
  • Using a Status Bar (p. 380)
  • Introducing Tab Controls (p. 390)
  • Creating a Tab Control (p. 390)
  • Sending Tab Control Messages (p. 392)
  • Tab Notification Messages (p. 392)
  • A Simple Tab Demonstration Program (p. 394)
  • Using Tab Controls (p. 398)
  • Tree-View Controls (p. 409)
  • Create a Tree-View Control (p. 410)
  • Sending Tree-View Messages (p. 411)
  • Tree-View Notification Messages (p. 415)
  • A Tree-View Demonstration Program (p. 416)
  • 13 Property Sheets and Wizards (p. 425)
  • Property Sheet Basics (p. 426)
  • Creating a Property Sheet (p. 428)
  • Defining a Property Sheet Page (p. 428)
  • Initializing Each Page (p. 431)
  • Initializing the PROPSHEETHEADER Structure (p. 431)
  • Creating the Property Sheet Control (p. 435)
  • Processing Property Sheet Messages (p. 435)
  • Sending Messages to the Property Sheet (p. 436)
  • Property Sheet Dialog Dimensions (p. 439)
  • A Property Sheet Demonstration Program (p. 439)
  • Creating a Wizard (p. 453)
  • The Wizard 97 Specification (p. 453)
  • Enabling Wizard Buttons (p. 456)
  • A Wizard Demonstration Program (p. 457)
  • A Closer Look at the Wizard Example (p. 473)
  • Worth the Effort (p. 474)
  • 14 Using the Header and Month Calendar Controls (p. 475)
  • Header Controls (p. 476)
  • Creating a Header Control (p. 476)
  • Sending Messages to a Header Control (p. 477)
  • Sizing the Header (p. 482)
  • Inserting Headings into the Header Control (p. 484)
  • Displaying the Header Control (p. 485)
  • Header Notification Messages (p. 485)
  • A Simple Header Control Example (p. 486)
  • A Closer Look at the First Header Control Example (p. 496)
  • Enhancing the Header Control (p. 497)
  • Creating Button Headers (p. 497)
  • Responding to Mouse Events (p. 498)
  • Using the HDN_TRACK Message (p. 498)
  • An Enhanced Header Control Example (p. 498)
  • A Closer Look at the Enhanced Header Control Program (p. 508)
  • Some Things to Try (p. 510)
  • The Month Calendar Control (p. 510)
  • Creating a Month Calendar (p. 510)
  • Sending Messages to a Month Calendar (p. 510)
  • Month Calendar Notification Messages (p. 512)
  • Sizing the Month Calendar Control (p. 513)
  • Demonstrating a Month Calendar Control (p. 514)
  • Common Control Wrap-up (p. 519)
  • 15 Thread-based Multitasking (p. 521)
  • Creating a Multithreaded Program (p. 522)
  • Creating a Thread (p. 523)
  • Terminating a Thread (p. 524)
  • A Multithreaded Example (p. 524)
  • A Closer Look at the Multithreaded Program (p. 529)
  • Alternatives to CreateThread() and ExitThread() (p. 530)
  • The Microsoft Alternatives (p. 530)
  • Using the Microsoft C/C++ Thread Functions (p. 532)
  • Avoiding the C Library Functions (p. 536)
  • Suspending and Resuming a Thread (p. 536)
  • Thread Priorities (p. 537)
  • Priority Classes (p. 537)
  • Thread Priorities (p. 538)
  • Creating a Thread Control Panel (p. 539)
  • A Thread Control Panel Program (p. 540)
  • A Closer Look at the Thread Control Panel (p. 549)
  • Synchronization (p. 554)
  • Understanding the Synchronization Problem (p. 556)
  • Windows 2000 Synchronization Objects (p. 558)
  • Using a Semaphore to Synchronize Threads (p. 559)
  • A Closer Look at the Semaphore Program (p. 565)
  • Using an Event Object (p. 565)
  • Using a Waitable Timer (p. 567)
  • Uses for Waitable Timers (p. 575)
  • Creating a Separate Task (p. 575)
  • 16 Using the Two Help Systems (p. 581)
  • Two Styles of Help (p. 582)
  • Context-Sensitive Versus Reference Help (p. 582)
  • How the User Invokes Help (p. 584)
  • Using the WinHelp Help System (p. 585)
  • The WinHelp Help File (p. 585)
  • Creating a Help File (p. 586)
  • The General Form of an RTF Help File (p. 586)
  • Some RTF Commands (p. 586)
  • A Sample WinHelp Help File (p. 591)
  • Executing Help Using WinHelp() (p. 598)
  • Responding to WM_HELP and WM_CONTEXTMENU Messages (p. 600)
  • WM_HELP (p. 601)
  • WM_CONTEXTMENU (p. 602)
  • Including the? Button (p. 603)
  • A WinHelp Demonstration Program (p. 603)
  • A Closer Look at the WinHelp Demonstration Program (p. 611)
  • Using WinHelp Secondary Windows (p. 612)
  • Using HTML Help (p. 613)
  • HTML, not RTF (p. 614)
  • The HTML Help Workshop (p. 614)
  • HtmlHelp() (p. 616)
  • Demonstrating HtmlHelp() (p. 620)
  • Some Things to Try (p. 628)
  • 17 Using the Printer (p. 629)
  • Obtaining a Printer Device Context (p. 630)
  • CreateDC() (p. 630)
  • PrintDlgEx() (p. 631)
  • The Printer Functions (p. 637)
  • A Simple Printing Example (p. 639)
  • A Closer Look at the First Printing Program (p. 645)
  • Printing Bitmaps (p. 647)
  • Determining Printer Raster Capabilities (p. 647)
  • Maintaining Perspective (p. 648)
  • StretchBlt() (p. 649)
  • Obtaining Printer-Compatible DCs (p. 650)
  • A Bitmap Printing Demonstration Program (p. 651)
  • A Closer Look at the Bitmap Printing Program (p. 660)
  • Adding an Abort Function (p. 664)
  • SetAbortProc() (p. 664)
  • The Cancel Printing Dialog Box (p. 666)
  • A Complete Printing Example (p. 666)
  • Some Things to Try (p. 678)
  • 18 Using the System Registry and Creating Screen Savers (p. 679)
  • Screen Saver Fundamentals (p. 680)
  • The Screen Saver Functions (p. 681)
  • Two Screen Saver Resources (p. 682)
  • Other Programming Considerations (p. 683)
  • Creating a Minimal Screen Saver (p. 684)
  • A Closer Look at the First Screen Saver (p. 686)
  • Problems with the First Screen Saver (p. 687)
  • Understanding the System Registry (p. 687)
  • The Registry Structure (p. 688)
  • The Built-in Keys (p. 689)
  • Registry Values (p. 691)
  • Creating and Opening a Key (p. 692)
  • Storing Values (p. 694)
  • Retrieving Values (p. 695)
  • Closing a Key (p. 695)
  • Using REGEDIT (p. 697)
  • Creating a Configurable Screen Saver (p. 697)
  • A Closer Look at the Configurable Screen Saver (p. 702)
  • Some Things to Try (p. 706)
  • 19 Supercharging Menus (p. 709)
  • Dynamic Menus (p. 710)
  • Adding an Item to a Menu (p. 710)
  • Deleting a Menu Item (p. 714)
  • Obtaining a Handle to a Menu (p. 714)
  • Obtaining the Size of a Menu (p. 715)
  • Enabling and Disabling a Menu Item (p. 715)
  • Dynamically Adding Menu Items (p. 716)
  • A Closer Look at the First Dynamic Menu Program (p. 722)
  • Creating Dynamic Pop-up Menus (p. 724)
  • Using Floating Menus (p. 731)
  • Activating a Floating Menu (p. 731)
  • Demonstrating Floating Menus (p. 736)
  • A Closer Look at the Floating Menu Program (p. 743)
  • Animating Pop-up Menus (p. 745)
  • Handling WM_MENURBUTTONUP Messages (p. 746)
  • Some Things to Try (p. 747)
  • 20 DLLs and Security (p. 749)
  • Creating DLLs (p. 750)
  • Dynamic Linking vs. Static Linking (p. 750)
  • Why Create a DLL? (p. 751)
  • DLL Basics (p. 751)
  • A Simple DLL (p. 753)
  • Creating A Header File (p. 754)
  • Using the DLL (p. 755)
  • Using DllMain() (p. 758)
  • Adding a DllMain() to MYDLL (p. 759)
  • Demonstrating DllMain() (p. 760)
  • Security (p. 764)
  • Defining Terms (p. 767)
  • How Security Works (p. 768)
  • Some Security-Related API Functions (p. 769)
  • What Next? (p. 769)
  • Index (p. 771)

Powered by Koha