MFC对话框的一个疑问
小_汪 2019-05-31 10:22:12 本人刚学mfc没多久,今天洗碗的时候想着白天遇到的一个问题,虽然百度后解决了。但是深思的时候还是有一个疑问。这个疑问和早上的问题不是很相关,但也有一点关联。问题比较抽象,我不知道我能不能描述的清楚,我尽量吧。是这样的
学mfc之前我看了一下C++的基础知识。我们一般都是在c++看到的函数形式都是这样的
class A{
···//成员函数和成员数据
};
int main(){
A a;
return 1;
}
一般都是这种形式,我们在创建一个类时,并不会占用内存空间。只有类在实例化之后才会占用内存空间。也就是A a有了这句话对象a才会占用内存空间。
但是在mfc中,我新建了一个工程,然后一步一步设置好,中间有一步骤我勾选的是基于对话框。设置完后,系统就自动生成了一个主对话框。然后左边就是一个app.cpp和一个dlg.cpp,还有各种的.h文件和一些资源文件。我编写程序都是在***dlg.cpp上添加各种代码。也就是说我只是在***dlg这个类里面进行各种操作。
我的疑问时系统生成的这个对话框是谁创建的。我觉得总该有个类似于上面这样***dlg a;代码才能创建对话框吧。不然怎么生成对话框。这样就引申出我早上的一个问题。我在类中的一个静态函数里访问一个非静态函数,我就需要用对象名.函数这样访问。但是这个主对话框我都不知道是谁创建的,我怎么用对象名去访问。用专业术语讲就是获得父窗口指针的意思。
说了这么多,不知道有没有讲明白。还望大神不吝赐教,尽量讲的详细些