I'm learning C++ by myself and these type of projects are very helpful. I just wanted to say thanks for spending the time to help out beginners like me. One thing i've been struggling with as of late is using threads with mfc. It seems the more i learn the more i would like to get away from mfc and this will be a great help.
The OO based thread system I have been using in my development efforts lately is call ZThreads. I think you will find that it covers just about everything you would need, and is cross platform to boot!
The use of CreateThread in method Start is ill advised as this direct system API call bypasses the C runtime and breaks certain automatic C runtime functionality such as memory leak detection when debugging. It would be more appropriate to use _beginthread or _beginthreadex.
This can be easily done(messages to all threads).
You can construct a double linked list where nodes are the CThread declared objects. And then just use ur own function for the message sending like:
// SendUp - send message up one level of hierarchy in double linked list (e.g send message from node 2 to node 1)
// SendDown - same, but send down one level
// lParam, wParam - messages to be passed