|Home » Services » Courses
Product Sheet: Windows GUI Programming
Radsoft offer professional in-house, onsite, and online courses in a number of subjects including Win32 system programming, Win32 GUI programming, and remedial courses in the C programming language. Current venues include northern Europe, Scandinavia, Australia, and the Far East.
Admission to the online course 'Win32 GUI Programming' is pursuant to the applicant having the necessary prerequisites to complete the course. Information about these prerequisites is sent on request.
The in-house and onsite courses follow a strict curriculum and require ten full days of study over one weekend. The online course is paced with very reasonable time limits. In all cases, it is of vital importance that all students fully master previous materials before moving on.
Fees & Payment
Payment is made before the start of the course and in full. Payment details are supplied on request. Payment is by wire transfer only.
This course is not a 'sightseeing tour' of the Win32 API, but a model for learning how to build efficient Win32 executables from available resources while following requirement specifications.
- Remedial work with the C language
- Review of side effects in C
- Working towards one's own programming style in C
- Understanding the compiler (MSVC 5 or 6)
The Windows programming model
- Event-driven programming
- Windows messaging and message flow
Building an application framework
- The bare essentials (Hello World in a window)
- Menu helpers: toolbars, tooltips, et al.
- Stringtable resources
More on WinMain
- Who calls WinMain
- Who gets the command line first
- Writing your own entry point
- ANSI and Unicode
- ShowWindow and 'show values'
- Creating window classes
- GetStockObject, GetSysColor
- Extended window styles
- Window 'procedures' and their instantiation
- Function and types of 'common dialogs'
- OPENFILENAME, GetOpenFileName, GetSaveFileName
- Multi-zero-terminated filter strings
- OFN_ flags
- Installing hooks
- Print and Page Setup dialogs
- Find and Replace dialogs
- Registering Windows messages
- Accelerator resources
- Loading accelerators
- Translating accelerators
- Modal and modeless dialogs
- Creating dialogs
- Checking for dialog messages
- Dialog 'procedures'
- Dialog controls
- Contents of dialog messages
- Communicating with dialog controls
- The six original dialog controls
- The newer 'common controls'
- Initialising for use of common controls
- Dialog styles
- Stand-alone dialogs: 'the right way'
- Property sheet pages
- Property sheet headers
- Transitioning code from dialogs
- Device contexts
- The 'hamburger principle'
- Selecting objects
- What to delete, what to leave alone
- Creating off-screen objects
- Bit block transfers
- Stretching bitmaps
- Pens, brushes, fonts, geometric objects
- Static linking vs. dynamic linking
- Build-time dynamic linking vs. runtime dynamic linking
- The DLL entry point
- Exporting code and data
- The module definition file
Practical Requirement Spec: 411
- Introduction to the spec
- Preparing the framework
- Adding the menu items
- Editing and integrating the toolbar
- Putting code behind the concept: listboxes
- Opening and saving application data files
- Checking for file changes
- Transitioning to the newer list view
- Why use a list view and not a list box
- Code simplifications
- NMHDR, catching WM_NOTIFY
- Routing code efficiently
- Deciding on a file format
- Opening and saving files
- Use of the Clipboard
- Registering a clipboard format
- The Clipboard chain
- Opening the clipboard
- Emptying and setting data to the clipboard
- Pasting in data from the clipboard
- The Global* family of memory functions
- GlobalSize, GlobalFree, GlobalLock, GlobalUnlock
- Further features, getting ready for delivery
Additional Study (Week Three)
- The screensaver library
- Running code through library window procedures
- The configuration dialog
- Where the application name comes from
- Required string resources
- Required icon resources
- How to make a screensaver 'tick'
- Where the screensaver device context comes from
- Calculating screen real estate
- Erasing the screen background
- Initialising from and saving configuration data
- WinHelp basics
- WinHelp as a super-set of RTF
- Using Help Workshop
- Transitioning to HTML Help Workshop
- Setting up keywords and links
- Setting up the contents file
- Setting up file links
Tweaking with the Tribe
All the Rest
Other Development Models
Where to go from here
Course materials include full source to tutorials and solutions.