// int GetUpdateRgn(HWND hWnd, HRGN hRgn, BOOL bErase) public static int GetUpdateRgn(int hWnd, int hRgn, int bErase) { WinWindow win = WinWindow.get(hWnd); WinRegion rgn = WinRegion.get(hRgn); if (win == null || rgn == null) return ERROR; if (win.needsPainting()) { if (bErase != 0) { rgn.rects.clear(); rgn.rects.add(new WinRect(0, 0, win.rectWindow.width(), win.rectWindow.height())); Message.SendMessageA(hWnd, WM_NCPAINT, hRgn, 0); int hdc = win.getDC().handle; Message.SendMessageA(hWnd, WM_ERASEBKGND, hdc, 0); ReleaseDC(hWnd, hdc); } rgn.rects.clear(); rgn.rects.add(new WinRect(0, 0, win.rectClient.width(), win.rectClient.height())); return SIMPLEREGION; } return NULLREGION; }