“CDialog”和“CDialogEx”有什么不同,该如何处理

“CDialog”和“CDialogEx”有什么不同
VC6中Dialog基类是“CDialog”,而在VS2010中Dialog基类默认选择的是“CDialogEx”。
问题一:两者有什么差别和联系???

问题二:VC6.0创建的头文件开头有
#if !defined(AFX_CHATDLG_H__CA158545_90FE_4D51_8EB9_8AD271AFBB86__INCLUDED_)
#define AFX_CHATDLG_H__CA158545_90FE_4D51_8EB9_8AD271AFBB86__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

而在VS2010创建的头文件中则没有,请问这是为什么???

------解决方案--------------------
CDialogEx继承自CDialog,给加了一些功能,比如可以换背景图片、背景颜色啥的。另外还改了一些与界面相关的东西。。。你手动继承自CDialog也不会出错。。



vc6那种写法可能是怕有些ide不支持这种防止重复包含的方式。。
vs2010也会用#pragma once来防止重复包含
------解决方案--------------------
CDialogEx=CDialog Extend
Extend的意思是扩展,即扩展的CDialog