我自己写了一个函数,里面调用DestroyWindow来销毁了。
但是WM_CLOSE的响应没有重写,所以按下close后,系统又重新送出了DestroyWindow的消息,所以窗口被销毁了两次。从而导致HDC已经被销毁过。最后重写WM_CLOSE解决。
case WM_CLOSE:
{
PostQuitMessage(0);
return 0;
}
只让close响应跳出消息循环,而不销毁窗口。
所有的原因就是在于WM_CLOSE的响应是自己会调用DestroyWindow的。一个窗口显然不能被Destroy两次。