How about adding the ability to show the files beneath the directory, greyed out? A user might have several directories holding similar files, and might want reassurance that they've picked the right one by seeing the right set of files beneath it. Of course you can't select the files, but they're there, providing context for the user.
Just a suggestion. I haven't seen this implemented anywhere else.
It is nice. I would use more nice icons thought(actually I did some time ago doing the same thing), this ones are looking more like VB, or Borland Delphi style. Anyway, I think that the root directory should be indicated like that: "C:\".
Also the whole thing have some flash when changing small amount of directories. It should not redraw all the contents.
BTW, there a cool class in the Shell programming section here using SHBrowseForFolder.
BoundsChecker found a memory leak in InitDialog because the CImageList pointer is allocated on the heap with
"new" but never deleted.
To solve this leak, I made pImageList a private variable instead of a pointer.
CImageList m_ImageList; //add this to the header file
You have to change the references to pImageList from pointers (pImageList->Create, etc.) to
non-pointers (m_ImageList.Create, etc.).
When this is done the memory leak goes away.
\\\\If you add a message map hander for the changed selection, it tries to select an item before the window
is ready - put a flag in to tell it to exit the OnSelChanged method until its ready, e.g. when you get
WM_INIT_DIALOG or set a timer.
That enables the program to begin - the 2nd problem is that the function cannot call Initialise a second
time because it goes into an eternal loop. Here you really do need a timer.