一个类中(设为A)成员包含自己添加的对话框类的对象(设为B),然后在B中给A发送WM_CLOSE,无什么A的窗口关闭了,但进程未退出。该如何解决
一个类中(设为A)成员包含自己添加的对话框类的对象(设为B),然后在B中给A发送WM_CLOSE,无什么A的窗口关闭了,但进程未退出。
创建一个MFC对话框工程,工程名字设为A,再添加一个对话框,类为B。
A中添加一个B类对象,在A中调用B,同时把A自己的传递给B中成员,hwnda,然后B中::postmessage(hwnda,WM_CLOSE,0,0);
那为什么A进程无法关闭呢?只有把B的窗口关闭了,A的进程才能关闭?
按理说,A收到WM_CLOSE之后,销毁窗口,终止消息循环,就应该退出进程了,是因为B不能被释放还是什么原因,A进程未退出。
......好难表达啊,不知道说清楚没有?
------解决方案--------------------
------解决方案--------------------
你可以看到如果模态对话框不先关闭的话,你App类的InitInstance()函数中的父对话框的DoModal()函数是不会返回的,那么整个进程是不会退出的,尽管这个时候你的主对话框看不到了
创建一个MFC对话框工程,工程名字设为A,再添加一个对话框,类为B。
A中添加一个B类对象,在A中调用B,同时把A自己的传递给B中成员,hwnda,然后B中::postmessage(hwnda,WM_CLOSE,0,0);
那为什么A进程无法关闭呢?只有把B的窗口关闭了,A的进程才能关闭?
按理说,A收到WM_CLOSE之后,销毁窗口,终止消息循环,就应该退出进程了,是因为B不能被释放还是什么原因,A进程未退出。
......好难表达啊,不知道说清楚没有?
------解决方案--------------------
------解决方案--------------------
你可以看到如果模态对话框不先关闭的话,你App类的InitInstance()函数中的父对话框的DoModal()函数是不会返回的,那么整个进程是不会退出的,尽管这个时候你的主对话框看不到了