为什么我的APP对像自动销毁了
我自己设计了一个窗口,想让此窗口显示出来的可是窗口刚显示出来马上就消失了,请问下高手们应该怎么做才可以让此窗口显示出来不消失呢? 直到我点了窗口右上角的叉叉关闭窗口时才结束进程。
具体代码如下:
1,我用vs2008先创建了一个windows项目 名为:mi gong
2,创建了一个头文件 名为:mi gong.h 头文件里面包含了 #include<afxwin.h>
3,设置了项目 以静态方式访问MFC
4,新建了资源文件名为:mi gong.rc
5,添加了主程序类 mi gong app,代码如下:
class migongapp :
public CWinApp
{
public:
BOOL InitInstance();
CWnd* okk; ///添加指向主窗口类的成员指针
migongapp(void);
~migongapp(void);
};
6,添加了窗口类 mi gong wnd,代码如下:
class migongwnd :
public CFrameWnd
{
public:
migongwnd(void);
~migongwnd(void);
};
并在构造函数中使用create函数创建一个窗体代码如下:
migongwnd::migongwnd(void)
{
Create(NULL,"迷宫测试");
::AfxMessageBox("wnd对像创建成功");
}
7,然后在mi gong app 窗口中先创建了一个对像
migongapp myapp;
然后从写InitInstance函数代码如下:
BOOL migongapp::InitInstance()
{
myapp.okk=new migongwnd; //在堆中新建了一个窗口对像交给migongapp类的成员指针OKK保存,同时调用migongwnd类的构造 //函数中的create函数来创建了一个窗口。
myapp.okk->ShowWindow(m_nCmdShow); //显示该窗口
myapp.okk->UpdateWindow(); //更新窗口
return true;
}
8,然后在migongapp的析构函数中添加delete okk; okk=NULL; //程序结束时释放对像空间
9,然后运行程序 此窗口刚刚显示出来就消失了 程序结束了,可是当我把OKK指针换成migongapp.m_pMainWnd指针的时候此窗口就不会消失 程序也不会自动结束了,代码如下:
BOOL migongapp::InitInstance()
{
myapp.m_pMainWnd=new migongwnd; //在堆中新建了一个窗口对像交给migongapp类的成员指针OKK保存,同时调用migongwnd
// 类的构造函数中的create函数来创建了一个窗口。
myapp.m_pMainWnd->ShowWindow(m_nCmdShow); //显示该窗口
myapp.m_pMainWnd->UpdateWindow(); //更新窗口
return true;
}
我的问题就是okk和m_pMainWnd 二个指针都是指向CWnd类的指针为什么我用OKK保存对像就不行,而用m_pMainWnd指针保存对像窗口就可以
就不会消失呢? 我是新手不要笑我哈。。。希望高手指点下 谢了!
来源: http://www.