除了没有足够的内存,MessageBox是否可以返回0?我有一个案例,我怀疑我传递给MessageBox的HWND无效,或者它属于正在被销毁的窗口。
在我的情况下,MessageBox没有显示并返回0,但我似乎有足够的可用内存。
答案 0 :(得分:8)
除了内存不足外,是否存在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()来查看它返回的错误代码。
答案 1 :(得分:0)
如果将NULL或GetDesktopWindow()作为HWND参数传递,问题是否会消失?如果是这样,那么你可能是正确的。您还可以尝试使用IsWindow()或IsWindowVisible()函数提前验证HWND。 (虽然如果有问题的窗口正在被破坏,我不确定这些功能的行为是否可靠。)