11 个解决方案
#1
或者说那种退出机制是怎样的呢,多谢!
#2
WM_CLOSE ?
#3
WM_CLOSE没有把程序给关闭,但也调用了view类的ondestroy()
从view类中直接发出WM_QUIT,什么都没调用就直接退出了。
从view类中直接发出WM_QUIT,什么都没调用就直接退出了。
#4
WM_CLOSE -> DestroyWindow() -> WM_DESTORY -> PostQuitMessage() -> WM_QUIT
#5
这个我也知道,只是想测试一下是不是那样的,好像结果不是。
就是从view类中发出WM_CLOSE之后,先调用onclose,再ondestroy,就没什么反应了,最后,程序没有退出。
就是从view类中发出WM_CLOSE之后,先调用onclose,再ondestroy,就没什么反应了,最后,程序没有退出。
#6
你在View里直接PostMessage(WM_CLOSE, 0, 0);这样调用的?
你应该调用AfxGetMainWnd()->PostMessage(WM_CLOSE, 0, 0);
#7
即WM_CLOSE消息应该是发送给主框架窗口的,你看你的App类的InitInstance函数中m_PMainWnd的值是哪个不就很清楚了
#8
楼上说的是,要整个程序退出,自然要销毁主框架窗口,WM_CLOSE消息应发给CMainFrame窗口
#9
QUIT
#10
嗯!醒悟了。
#11
不好意思,好像给分给错人了。
#1
或者说那种退出机制是怎样的呢,多谢!
#2
WM_CLOSE ?
#3
WM_CLOSE没有把程序给关闭,但也调用了view类的ondestroy()
从view类中直接发出WM_QUIT,什么都没调用就直接退出了。
从view类中直接发出WM_QUIT,什么都没调用就直接退出了。
#4
WM_CLOSE -> DestroyWindow() -> WM_DESTORY -> PostQuitMessage() -> WM_QUIT
#5
这个我也知道,只是想测试一下是不是那样的,好像结果不是。
就是从view类中发出WM_CLOSE之后,先调用onclose,再ondestroy,就没什么反应了,最后,程序没有退出。
就是从view类中发出WM_CLOSE之后,先调用onclose,再ondestroy,就没什么反应了,最后,程序没有退出。
#6
你在View里直接PostMessage(WM_CLOSE, 0, 0);这样调用的?
你应该调用AfxGetMainWnd()->PostMessage(WM_CLOSE, 0, 0);
#7
即WM_CLOSE消息应该是发送给主框架窗口的,你看你的App类的InitInstance函数中m_PMainWnd的值是哪个不就很清楚了
#8
楼上说的是,要整个程序退出,自然要销毁主框架窗口,WM_CLOSE消息应发给CMainFrame窗口
#9
QUIT
#10
嗯!醒悟了。
#11
不好意思,好像给分给错人了。