Of course, this is an open source product, and if you care to add legend support on your own, I'd be happy to add you to the development team for this project. See the contact page for information on the hosting of this project.
Of course, this is an open source product, and if you care to add plot support on your own, I'd be happy to add you to the development team for this project. See the contact page for information on the hosting of this project.
Also, I like to write code. I like to learn how to do new things, and I'd never written a complete plotting display program before (heck, I'd never used MFC before). Many times in my life, I re-invent the wheel and my wheel has 16 edges instead of being round, but I invented it, and I learned from it, which is most of the fun in programming for me.
Actually, I had never used MFC before when I started writing CPlot, so some of my choices may not have been the best. However, I still think that deriving from CObject was OK since it ensures that CPlot is completely independent of the view architecture of the program (some may consider this a bad thing). But the way it is, you can have a plot as a sub-section of a view, and not have to worry about view creation and management. Just call the appropriate OnDraw function with the client rectangle for the chart. It couldn't be (much) easier.
First things first: I'm a Mac programmer. It's 90% of the GUI programming that I have done in my life. So, I tend to borrow some of the conventions from there, such as constants beginning with lowercase k, and having some name spelled out with first letter capitals.
#define kMenuAxisRange 100
Other than that, for member variables, I try to follow the m_ convention. And every once in a while, I even use the variable prefix notation such as m_bVariableName such that one knows that m_bVariableName is a boolean. But I'll be honest, I'm not consistent. It's hard to be consistent when you're used to one thing, and having to do another. And no one is paying you to do it right. =)
Don't even get me started about how inconsistent I can be with function naming. I hate it, myself. =)