As others have suggested, all GUI initialization should occur in OnInitDialog(). The fact that some controls work is probably more of a coincidence in how they're implemented but should not be an indication that this is the proper place for this.
I doubt on the term instance in case of pure virtual class.You can't create an instance of a class if it have a pure virtual function.May be the code is declaring the pointer of base class and assigning the instance of derived class.Like,
_base *pbase = new basederive();
Further question. What if you have two descendents from _base. How does the compiler know which one to instantiate?
This will be done with help of virtual pointer table.There are lot of articles in code project on this.Start from this link, ATL Under the Hood - Part 2
Yeah, its running on a remote machine, so I am doing an 'attach to process' in VS. pdbs are on the remote machine with the exes and dlls (best way to handle symbols for VS IMO). OS symbols are stored on the dev machie locally and off Microsofts symsrv.
But weird, just cant step into the code. Its not even complaining about lack of source code and offering the view assembler approach.
Cant really devote time to finding out why its not doing it, too much real work to do else where.
I dug a bit deeper and in fact the _base pointer instance is new'ed as the sub classes.
And now I saw that, I remember from about 12 years ago, that I have seen this before. Spent the last 10 years pretty much 100% in the kernel so I guess I got a bit rusty with the old C++ inheritance game.
Have you still not solved that issue? VS should step into virtual funcs - I do it every day, using VS 2003, and now that I switched it to VS2010 it works just as well.
Apart from your debugging a remote program - I haven't done that myself, the only thing I can think of is that your code does something different than you think it should. but without seeing the code we can't say. Can you extract the relavnt bits of your code (i. e. the declaration of the virtual func in the base class and how you overrode it in your derived class) and post it?