该问题的窗体由父窗口mainWindow和子窗口childWindow组成。
其中mainWindow、childWindow窗口在工程文件中对应的文件分别为
mainWindow.h mainWindow.cpp(父窗口)
childWindow.h childWindow.cpp(子窗口)
其中子窗口由VS窗口向导创建。
在父窗口中按下按钮,子窗口显示,按下子窗口中按钮,赋值然后子窗口关闭,已经确定
子窗口OnClose()时调用DestroyWindow()并且在PostNcDestroy()确认其hWnd已经=NULL
以下是调用代码。
//父窗口调用子窗口代码如下(mainWindow.cpp)
#include childWindow.h;
//某个方法中
{
childWindow childWindowDlg;
childWindowDlg.DoModal();
}
//子窗口变量赋值代码如下(childWindow.cpp)
vector<CString> shipcode;
//然后在某个方法中
{
int shipSize = shipcode.size();
//然后这里就是问题所在了,第一次启动该窗口时执行该方法时shipSize为0,将此vector赋值以后(如添加了3个"a""b""c");然后将窗口关闭并且确认调用了DestroyWindow()以后,在父窗口中的子窗口窗口调用代码(就是上面的父窗口的代码)再次被调用然后子窗口创建完成后,再次执行此子窗口的方法,发现shipSize为3也就是上一次子窗口被关闭前该变量被赋的值。
}
请问大家该问题怎么解决,我想每次启动子窗口shipSize都为0,本人MFC学习不多,临时需求要写。因为需求关系不能使用QT,希望大家帮帮忙呀。