CHI '95 ProceedingsTopIndexes
TutorialsTOC

An Introduction To MS-Windows Software Development

Linda R. Jacobson

4390 Ludlow St.
Boulder, CO 80303
(303) 499-0764
Email: lindaj@csn.or

© ACM

Abstract

This is an introductory class that covers the basic concepts of Microsoft. Windows (Footnote 1) software development. These include event-driven programming, message routing and message handling, and screen management issues. The class provides an overview of the Windows functional library (the Software Development Kit) and how it is used to handle menu selections, paint the screen, and display, update and read dialog boxes. A simple program is analyzed to demonstrate these concepts.

Keywords:

Event-driven programming, MS Windows SDK, screen management, MS Windows programming

OVERVIEW

There is a large demand for people able to program in Microsoft Windows. In addition, the concepts necessary to develop for Windows are readily transferable to other environments such as Macs and X. These concepts include event-driven programming, user-defined control flow, as well as screen features such as menus, lists, edit fields and pushbuttons.

This seminar will focus on these basic topics and how to implement them in Microsoft Windows. Windows is examined from the point of view of the underlying Applications Programmer's Interface (API), because this most clearly demonstrates these concepts. Many tools exist that hide these details from you. However to successfully evaluate these tools, this understanding is necessary. At the conclusion of the seminar, we will use what we have learned to examine the different types of tools that are on the market. This will include evaluating the tradeoffs involved in choosing the right tool for your project and your company.

Major topics to be covered include:

A sample program will be analyzed to demonstrate each concept. In the tools section, we will examine code generators and multi-platform tools.

At the end of this seminar you will have sufficient knowledge to make self-study a manageable task. If you are considering a Windows project for your company, you will be aware of the scope of the task and the best ways of approaching it.

COURSE OUTLINE

 
  I.   GUI system concepts 
      A.  What is a GUI? 
      B.   User-controlled sequence of events 
      C.   Event-driven programming 
      D.   A window as a focus of control 
      E.   Screen Management Issues 
 II.   MS-Windows overview 
      A.   Windows as a GUI system 
           B.    Strengths and Weaknesses 
III.   Screen Design 
      A.   Screen design tools - a demo 
      B.   Relating the screen image to source code 
 IV.  Program Skeleton - a look at source code 
V.  Handling Events 
      A.  Receiving and routing messages 
      B.   A look at six common messages 
VI.  Windows and Dialog Boxes 
      A.   Relationship of windows to dialog boxes 
      B.   Screen design issues 
      C.   Relationship of dialog boxes to controls 
 VII.  Miscellaneous Issues 
      A.  Memory Management 
      B.  Dynamic Link Libraries 
      C.   Inter-task communication 
      D.  Common Dialog Boxes 
      E.   Specialized Windows files (bitmaps, icons, etc.) 
VIII. Tools 
      A.   What kinds of toos are there? 
      B.   Code generators 
      C.   Multi-platform tools 

DETAILED DESCRIPTION

The class is designed to serve as an introduction to learning MS Windows programming. It is meant to serve as a framework for future learning.

The first three sections of the outline above, assume little or no programming knowledge, and focus primarily on concepts.

Sections four, five and six analyze the structure of a simple C program to show how these concepts are implemented.

Section seven touches on those areas not covered in this course and directs the student where to find further information.

In the final section we talk about development tools. This section uses the information provided earlier in the class to demonstrate how to evaluate the right tools for a project.

How Current is this Material?

This class was initially presented as a two evening Professional Development Seminar for the Boulder Chapter of the ACM. Over time it has been expanded into its present format. It is constantly being revised based on student input and the rapidly changing technology.

At the writing of this document, Chicago (Windows95) has not yet been released. It is currently scheduled for release in August. BETA copies are available under non- disclosure agreements. This class will be modified to reflect what is public knowledge at the time of its delivery.

Class Format

This class is presented as a lecture only. To make the content of the lecture meaningful, a sizable portion of the presentation is from computer screens. Therefore the class is always presented with some means for all students to be able to view the contents of a frequently changing computer screen.

Supplementary Material

Each student receives a workbook and diskette. The workbooks contains a series of exercises that expand on the material covered in class. The diskette contains solutions to these exercises.

INFORMATION AND QUESTIONS

If you have any questions, feel free to contact the author.

Acknowledgments

The author would like to acknowledge the executive board of the Boulder Chapter of the ACM for their editing, advice and support in the initial development of this class.

References

1. Microsoft Windows Software Development Kit Reference, Microsoft Press, 1992.,p> 2. Petzold, Charles, Programming Windows 3.1, Microsoft Press, 1992.

FOOTNOTES

(1) Windows is a trademark of Microsoft Corporation. Return to text