Пример #1
0
 // 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;
 }