Так как у меня была та же самая ошибка, вот моя причина и решение.
Причина: Вероятно, эта ошибка вызвана вашим WndProc.Когда вы закрываете окно, функция
DefWindowProc
устанавливает для последней ошибки значение 1400 =
Недопустимый дескриптор окна , если вы используете
PostQuitMessage
не «правильно».Сообщение, обрабатываемое при возникновении этой ошибки, вероятно, WM_NCLBUTTONDOWN.Если окно было уничтожено, клики по нему не могут быть обработаны.На самом деле есть несколько сообщений, которые не могут быть обработаны вашим окном.
Решение: После
PostQuitMessage
не более
DefWindowProc
!Просто верните код результата и выйдите из WndProc.
// translated from C#
LRESULT WndProc(HWND window, int msg, WPARAM wParam, LPARAM lParam)
{
if (msg == WM_CLOSE)
{
PostQuitMessage(0);
return 0; // comment this line to get the error again
}
return DefWindowProc(window, msg, wParam, lParam);
}