I know that you mentioned that you do not use any framework, but, for the sake of your sanity, I would suggest something like what used to be Borland VCL (I have not used it for a while, so I'm not sure what is it now called). In order not to use a well-designed structure when there are options available ... well, just don't call it a huge waste of resources. At least for the standard Windows program.
source share