扬子鳄中国分布图:vc++中,为什么CWnd*pParent通常=NULL?

来源:百度文库 编辑:中科新闻网 时间:2024/05/02 07:56:51

传递参数的时候,需要传递父窗口指针,但是如果你的程序某些时候不需要用到父窗口,那只要用NULL把这个参数缺省掉就可以了.

这个问题可以这样的来理解:

vc++编制的程序框架一般就是三种:SDI,MDI,DLG。而CWnd* pParent指的就

是本程序窗口(我们把控件,视图等等都广义的成为一个窗口)的父窗口,

除非你在编制关于控件的程序的时候可能要会要返回控件的环境,这时候的指

针就不为空。而是指示的它的上一级窗口。如果你的程序某些时候不需要用到

父窗口,一般就会为NULL.

根据VC的命名规则,CWnd*pParent是指 某个窗口的 父窗口。

CWnd* pParent=NULL

这个代码,最常见的地方是函数的参数和函数参数带有的默认值。当参数pParent带有这个默认值,说明这个父窗口可以不指定,也就是使用NULL,表示没有父窗口。同时也表示,你可以指定父窗口,只要给这个参数一个明确的窗口指针就可以了。

另外一个常见的地方,就是声明一个窗口指针:

CWnd* pParent=NULL;
//pParent->Create(....);
pParent = GetParent();

这种情况相对少见,这里赋值NULL的意思,是为了指针安全,任何指针在声明的时候,赋值NULL都是很好的安全处理,是C/C++编程的好习惯。

这是为了防止声明指针变量后,指针变量的内存地址中有随机数值,这样在之后对指针是否为空的判断会出现错误。

父窗口的指针,没有父窗口就 是null吧,不太清楚,觉得可能是