Combining OO programming with Windows has a long and distinguished history. The X-Windows system (which normally runs on Unix computers) and it's extensions, Motif and the XToolkit, implement an OO like scheme using plain old C. In this Motif 'Widgets' take the place of what would be Objects in a standard OO language.
To appreciate the real beauty of this system requires an understanding of OO progaming which is not what this site is intended to supply, but suffice to say, one of the primary features of any OO language will be it's extensibility. Once someone has written and fully tested the code for say a Window Object, you've no need to write it again or even to make alterations directly to it. Instead you can just add your own extensions. This means that you can add functions, or possibly redefine existing ones, whilst the origional source and object code remains unaltered. So, it can be much more certain that what has already been proven to work doesn't get broken by your changes. Better still, if the orional code gets improved, that will not adversly affect you, in fact the opposite, you'll be able to benefit from those improvements, all without altering a line of your own code.
Nowdays there also exist many Class Libraries designed to take the pain out writing WinApps. All of the grind of the basic functionality is encapsulated in a set of well tested Classes leaving the programmer free to extend them as he wants writing only the code needed to add the extra functionality he requires.
Any moderatly experienced C++ programmer who looks at a WinApp written using this technique may well be pleasantly surprised as to how clear it all is. Of course there are lots and lots of funny long function names dealing with the full plethora of Windows gizmos which won't mean much at first, and of course the programs will still be very large, but it is still quite easy to get a grip on what is going on.