所以我正在通过“Programming Windows - Charles Petzold(第 5 版)”一书学习 Windows API。如果我理解正确,在处理 WM_PAINT 消息调用函数 BeginPaint() 时会验证必须更新的给定区域。但是,在本书中(PDF 版第 145 页或印刷版第 128 页)您可以看到以下代码:
case WM_PAINT:
InvalidateRect (hwnd, NULL, TRUE) ; // what does this line do?
hdc = BeginPaint (hwnd, &ps) ;
DrawBezier (hdc, apt) ;
EndPaint (hwnd, &ps) ;
return 0 ;
这是作者的错误吗?我认为 InvalidateRect() 应该在使用 GetDC()/ReleaseDC() 之后调用,而不是在 WM_PAINT 消息中。