csdn 回答
在我个人看来有两个区别
1,SDI比dialog based有更丰富的默认窗体,比如,默认的菜单,只是SDI默认就多了一些支持
stackoverflow回答:
http://stackoverflow.com/questions/660843/choosing-between-a-dialog-based-vs-sdi-projects
If you select an SDI project you get a whole Model-View-Controller framework included. You get a document class (inheriting from CDocument) which ideally should hold all of the data, and a view class (inheriting from CView) to do with the display. You get given a hosting frame with a menu already attached, and there are functions you can override to save and load to file.
If you have a dialog based application, then you get one dialog. That's it. Of course, this dialog can spawn off others, but the application essentially consists of a dialog.
If you're developing a small application that just does one task, a dialog application is appropriate, because you don't need the overhead.