用Cdialog为基类 和 Cwnd为基类创建的窗体有什么不一样?

来源:百度知道 编辑:UC知道 时间:2024/06/03 07:47:49
不要说一个是对话框,另一个是窗口

从表面上看CDialog创建的窗口可以有菜单,最大化按钮,最小化按钮
Cwnd也有这些,两个到底有什么区别.

如果两个创建的窗口是相同的那为什么要用两种不同的方式创建.

对不起,我的分不够了只能给十分了,请原谅一下
CDialog类继承自Cwnd类CDialog针对对话框窗体所专门设计的类 它只要使用父类的成员函数 也可以达到Cwnd类效果

1.的意思是两个没有区别吗?
如果没有区别哪为什么不把从Cwnd继承的类设计都弄成可视化设计

2.不如把所有的设计全部改成可视化设计(包括Cwnd,和从Cwnd派生的类)

CDialog类继承自Cwnd类CDialog针对对话框窗体所专门设计的类 它只要使用父类的成员函数 也可以达到Cwnd类效果.而Cwnd类创建的是通用的窗体 比如文档视图之类的.

---------------------------------

Cwnd 是用API函数创建窗口??? 看看MFC类图 Cwnd是MFC二级类.

--------传说中的分隔线----------------------------

继承概念你因该去了解先.有区别 Cwnd属于概念类 一般来说设计窗体都不会使用它 都会使用相应的三级类 比如CDialog,CView类等 它们都有自已的作用 就算是使用Cwnd类 也不能创建有三级类的那些特性.

不如全改Cwnd? 那不如说全部改成CObject.把所有类的方法都加到CObject类中去 就都不用其它类了.呵 那就无层次结构而言了....这样 我也不知道如何说它的坏处.呵.

Cdialog从CWnd派生,所谓派生是指保留父类的所有特性,然后允许延伸出自己的特性.因此CDialog保留了窗口程序所有的特性,比如最大化,最小化......
同时它发展了自己的特性,如按钮,编辑框,资源文件......

不要把CDialog与CWnd当成类的特殊情况,你问为什么要从CWnd派生出CDialog类来,我认为,一句话是方便使用.就像你问为什么要把某些东西封装成类一样的道理.
CDialog与CWnd有什么区别,这个从类的继承关系来看,CDialog包函CWnd,所以说,他们的不同在于CDialog比CWnd拥有更多的成员函数或者成员变量可以使用.

从使用角度来看,CDialog是作为更适合用来显示对话框的窗口的而设计的,而CWnd则比较广泛的可用于显示任何类型的窗口,包括一个按钮,当然,我们也可以使用CWnd类来显示对话框窗口,只要你不会觉得麻烦了点.

CDialog 是用控件创建窗口。Cwnd 是用API函数创建窗口。CDialog 主要用与在可视化。而Cwnd 可用与一般和可视化。在一般编程中只能使用Cwnd .我以前是学java 现在刚开始