+ -
当前位置:首页 → 问答吧 → “CDialog”和“CDialogEx”有什么不同

“CDialog”和“CDialogEx”有什么不同

时间:2011-12-01

来源:互联网

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创建的头文件中则没有,请问这是为什么???

作者: starrychat   发布时间: 2011-12-01

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



vc6那种写法可能是怕有些ide不支持这种防止重复包含的方式。。
vs2010也会用#pragma once来防止重复包含

作者: wtx_sonery   发布时间: 2011-12-01

引用 1 楼 wtx_sonery 的回复:

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



vc6那种写法可能是怕有些ide不支持这种防止重复包含的方式。。
vs2010也会用#pragma once来防止重复包含


CDialogEx是CDialog的功能的扩展,这样理解不会错吧。

作者: starryplayer   发布时间: 2011-12-01

引用 1 楼 wtx_sonery 的回复:
CDialogEx继承自CDialog,给加了一些功能,比如可以换背景图片、背景颜色啥的。另外还改了一些与界面相关的东西。。。你手动继承自CDialog也不会出错。。



vc6那种写法可能是怕有些ide不支持这种防止重复包含的方式。。
vs2010也会用#pragma once来防止重复包含


应该是这样

作者: qiuxinyidian   发布时间: 2011-12-01