有没有MessageBox可以返回0而不是没有足够的内存的情况? 我有一个情况,我怀疑我传递给MessageBox的HWND是无效的,或者它可能属于正在销毁的窗口。
在我的情况下,消息框不显示,并返回0,但我似乎有足够的内存可用。
有没有MessageBox可以返回0而不是没有足够的内存的情况?
从MSDN文档:
http://msdn.microsoft.com/en-us/library/ms645505%28VS.85%29.aspx
If the function fails, the return value is zero. To get extended error information, call GetLastError.
我会调用GetLastError()来查看它返回的错误代码。
如果传递NULL或GetDesktopWindow()作为HWND参数,问题是否消失? 如果是这样,那么你可能是正确的。 您也可以尝试使用IsWindow()或IsWindowVisible()函数提前验证HWND。 (虽然我不确定这些函数的行为是否可靠,如果窗口正在被销毁的话)。