Complicated programs are not new however, and there is a way that has been developed to make them managable. This technique is called Object Orientated Programing, and is implemented in languages such as Smalltalk, Object C, and of course, C++. A rapid expalantion to why OO programing and Windows suit so well together can be found here.
Over time, as I continued to browse around programming sites in the internet, I occasionaly came across an example in which a WinApp had been written from scratch in C++ using some kind of Class Library of. Even more occasionaly, this library was the good old MFC! These examples popped up in the most unlikely places, a text book on Windows Programming might contain a few examples of this type, normally placed somewhere in the first few introductory chapters, and there was even some in, surprise surprise, the MFC examples suppilied with MSVC.
These examples would typically do something emminently useful, like for example, drawing a little window with a big button in it that says 'Press Me' on it and which then beeps when you do. However, just their very existance could come as something of a shock to anyone who's sole exposure had been through the MSVC Welcome Guide. This mighty tome had tended to give the distinct impression that MFC was something intimately bound up with AppWizard and not the sort of library that could be used idependently.
This was it gradually dawned on me, my much sort after 'Fifth Way'! With my then couple of years experience of C++, the programs that I found written in this way were relativly transparent and easy to follow. I could work out where they started and finished and what would happen in response to sinmple things like pressing buttons or dragging mice. Better still, they were short compared to similar Apps written in pure C and, since they used commercially written set of Object Classes, they were I hoped, also fairly rugged.
I then started hunting around the internet in earnest for more information and examples. What became rapidly clear was that this was a well beaten path that many others had previously discovered and that it appeared that many more programmers (at least proffesional ones as opposed to hobbyists) were working in this way than were in fact using the MS AppWizard route. There were also in existance many alternatives to the MFC libary, some produced commercially, some by keen individuals with too much spare time on their hands, and some as a linux-like group effort.
One thing that I could not find however was some kind of working example or template to get me started. The examples I had were contained within a single file things and not suitable to being extended to a fully functional program, and so I decided to go back to the start and to try and produce my own scheme for writing WinApps in the way I wanted.
After a bit of work and a lot more time than I had hoped, I sort of got it sussed out. At first I had written a graphics plotting program, starting with a simple non-resizable window, and then adding functionality, which normally meant and almost complete rewrite every stage. Finally I got to the stage of having a WinApp which did all the basic things in the way I wanted, and, best of all, I knew how and why it was doing them, so I went back to tha start again, and wrote a Template, that is a WinApp which basically did nothing, but which nevertheless did it in the simplest and clearest way it could.
This then is the new starting point. If you look at the next section, the WinApp Howto, what you'll see is a description of this Template WinApp. As I said, it does nothing other than be a WinApp, but/ it should be very easy to start adding bits to it to make it do just exactly whatever you want.