Wading through MFC
Okay, after a lot of hacking at my code like a dead piece of shrubbery, I've got the "edit tesselation level" stuff working in my app. I have a few more simple functions to plug in, but basically it works now. All the afore-mentioned memory leaks are gone and there was peace upon the land...
However, I am finally fed-up with MFC. I have decided that the amount of bloat and cryptic problems it introduces far outweighs it's conveniences. I've decided to port my editor to something else and redo some of the UI, stripping out some of the less-usefull stuff along the way.
So yeah, I'm looking for something nice to switch to. My code is in Cpp and needs support for dialogs, splitter windows and basic menus. Initial investigations have led me to .Net and WTL. WTL requires me to implement a whole bunch of things myself, but basically it looks very clean and minimal and is curretly what I'm leaning towards. .Net is something I do not have too much experience with, but I'm wary of jumping into it because my bat-sense is detecting oncoming bloat (but then, what has bat-sense ever gotten me?). Unfortunately, you need to do a little bit of jiggery-pokery to get WTL working on VS2005 Express (which is what I'll be switching to for the purpose of this port), but it's nothing I can't handle.
If anyone's made level-editors (the standard 3d/top/left/front-view type) in something other than MFC and wants to sing its praises, I'm all ears!
If you want to stick with unmanaged C++ there's wxWidgets. I've only used wxWidgets and Win32 so there are other options, but I'd rather stab myself in the face several times then use Win32 again. Plus wxWidgets has a nice built-in OpenGL control, if you're using OpenGL. You can still use Direct3D of course, but that requires the usual setup.
Edit: Should have checked my PMs first, ugh.
Anyway I don't know what all this talk of bloat is about. Under a modern system a couple extra hundred kilobytes on a exe or some extra DLLs isn't that big of deal. As a general rule, the higher level your code is the bigger it's going to be. The only way your fight bloat is to use low level APIs( like the one's you're fed up with...).