



Linda R. Jacobson
4390 Ludlow St.
Boulder, CO 80303
(303) 499-0764
Email: lindaj@csn.or
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:
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.
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.
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.
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.
A sample program will be analyzed to demonstrate each
concept. In the tools section, we will examine code
generators and multi-platform tools.
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.
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.
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