The question says it all really. Am I allowed derive a class from a struct, or should I create a class that embeds my struct and defines copy constructors and an = operator
In C++ struct is (almost) synonymous to a class (except of different default access level), so yes, you can.
struct
class
struct A { // fields are public by default }; class B: public A { // fields are private by default };
I'm not familiar with MFC, but it looks like an attempt to maintain both C and C++ APIs.