Hello Skirby,
Your example works very well but in order to create a simple Windows control, it is rather complicated.
It is true that the method initially is a bit more technical. However, As you see in the example, the application is quite simple. Just add the code module to your project, include the header and use the function MakeFlat() wherever you need to modify these controls.

I am not sure why dialog components created from resources do not respond well to SetWindowLong(), I have only been successfull utilizing GWL_USERDATA, and GWL_WINDPROC, and oring SS_NOTIFY to the style property. It may be that they are initially created by a process running on a seperate thread.

I downloaded your example code and modified it to do the things that you wanted it to do. I took a queue from the microsoft sdk dialog editor. It does not give you the option to put a border arround a static label instead you must draw a border around it using a rectangle.
In the example I placed a bitmap over the label and configured it to be a black rectangle. I default the visibility to FALSE, pressing the dialog button toggles the "border" on and off. There is a little more work with this method getting the border placed so that the text of the label does not touch the rectangle. Also if there is any moving / sizing going on you will have to handle both objects in your size proc.
Regards,
DMac