在标准的Win32程序中,可以通过IsWindow(hWnd)来判断窗口是否存在。
在MFC程序中,可以通过CWnd::GetSafeHwnd()来获取窗口句柄,理论上可以使用IsWindow(wnd.GetSafeHwnd())来判断wnd对象是否存在。但是如果wnd对象已经释放,那么就无法调用wnd.GetSafeHwnd()函数,也就不能用IsWindow(wnd.GetSafeHwnd())来判断窗口对象是否关闭!请问,如何判断窗口(CWnd)对象是否存在?
在MFC程序中,可以通过CWnd::GetSafeHwnd()来获取窗口句柄,理论上可以使用IsWindow(wnd.GetSafeHwnd())来判断wnd对象是否存在。但是如果wnd对象已经释放,那么就无法调用wnd.GetSafeHwnd()函数,也就不能用IsWindow(wnd.GetSafeHwnd())来判断窗口对象是否关闭!请问,如何判断窗口(CWnd)对象是否存在?
您说的是正确的!我的程序是其它地方出了问题——后台工作线程和主界面线程同步出了点问题,开始时怀疑wnd窗口资源释放导致GetSafeHwnd()函数无法调用。刚才做了一个只有主界面线程的小程序做了测试发现我的怀疑是错误的!非常感谢!虽然并不是直接解决问题,但这个问题得到了澄清!