WinAPI是无意义的吗?

WinAPI是无意义的吗?,winapi,gdi,wm-paint,Winapi,Gdi,Wm Paint,如果我们在处理WM_PAINT时在BeginPaint期间只有RECT,您能解释一下为什么WinAPI需要InvalidateRgn及其要添加到更新区域(hRgn)的区域句柄吗? 提前谢谢 Win32 API大约有30年的历史了;里面有很多向后兼容的代码。这里有一个完全正常的 话虽如此,使用bErase=TRUE调用InvalidateRgn将删除一个非矩形区域。Win32 API大约有30年历史了;里面有很多向后兼容的代码。这里有一个完全正常的 话虽如此,使用bErase=TRUE调用Inva

如果我们在处理WM_PAINT时在BeginPaint期间只有RECT,您能解释一下为什么WinAPI需要InvalidateRgn及其要添加到更新区域(hRgn)的区域句柄吗?
提前谢谢

Win32 API大约有30年的历史了;里面有很多向后兼容的代码。这里有一个完全正常的


话虽如此,使用
bErase=TRUE
调用
InvalidateRgn
将删除一个非矩形区域。

Win32 API大约有30年历史了;里面有很多向后兼容的代码。这里有一个完全正常的

话虽如此,使用
bErase=TRUE
调用
InvalidateRgn
将删除非矩形区域。

需要特定(复杂)更新区域是极为罕见的用例。该系统针对最常见的使用情况进行了优化,其中应用程序使用矩形使窗口无效并跟踪窗口的脏区域。这就是你打电话时得到的

如果您处于需要更新区域的罕见情况下,则可以调用。由于
BeginPaint
验证更新区域,因此在此之前必须调用
GetUpdateRegion

为什么Windows不发明一个返回更新区域的
BeginPaintEx
API?因为添加一个API是难以置信的昂贵,并且需要有充分的理由。添加一个不增加任何值的函数(如本例中所示)是很难证明的。

需要特定(复杂)的更新区域是极为罕见的用例。该系统针对最常见的使用情况进行了优化,其中应用程序使用矩形使窗口无效并跟踪窗口的脏区域。这就是你打电话时得到的

如果您处于需要更新区域的罕见情况下,则可以调用。由于
BeginPaint
验证更新区域,因此在此之前必须调用
GetUpdateRegion


为什么Windows不发明一个返回更新区域的
BeginPaintEx
API?因为添加一个API是难以置信的昂贵,并且需要有充分的理由。添加一个不增加任何值的函数(在本例中)是很难证明的。

“我们只有RECT”您可以在
WM_-PAINT
内部执行,只需在
BeginPaint
之前执行。谢谢dxiv。我们只有RECT“您可以在
WM_-PAINT
内部执行,只需在
BeginPaint
之前执行。谢谢您的回复。这始终是向后兼容性的问题。当然但是谁阻止了微软添加像BeginPaintEx这样的东西来处理这个地区。。。这就是问题所在……我想微软开发WinAPI的开发者数量可以用一只手来计算。谢谢你的回复。这始终是向后兼容性的问题。当然但是谁阻止了微软添加像BeginPaintEx这样的东西来处理这个地区。。。这就是问题所在……我想微软开发WinAPI的开发者数量可以用一只手来计算。