[REGEDIT] Don't paint background in WM_PAINT (#970)
authorKatayama Hirofumi MZ <katayama.hirofumi.mz@gmail.com>
Wed, 24 Oct 2018 09:17:28 +0000 (18:17 +0900)
committerGitHub <noreply@github.com>
Wed, 24 Oct 2018 09:17:28 +0000 (18:17 +0900)
Use the background brush or WM_ERASEBKGND message instead. There was graphical glidge. CORE-15187

base/applications/regedit/childwnd.c
base/applications/regedit/main.c

index 3afe53a..b1fb9fd 100644 (file)
@@ -105,17 +105,6 @@ static void draw_splitbar(HWND hWnd, int x)
     ReleaseDC(hWnd, hdc);
 }
 
-static void OnPaint(HWND hWnd)
-{
-    PAINTSTRUCT ps;
-    RECT rt;
-
-    GetClientRect(hWnd, &rt);
-    BeginPaint(hWnd, &ps);
-    FillRect(ps.hdc, &rt, GetSysColorBrush(COLOR_BTNFACE));
-    EndPaint(hWnd, &ps);
-}
-
 /*******************************************************************************
  * finish_splitbar [internal]
  *
@@ -384,7 +373,6 @@ UpdateAddress(HTREEITEM hItem, HKEY hRootKey, LPCWSTR pszPath)
  *  PURPOSE:  Processes messages for the child windows.
  *
  *  WM_COMMAND  - process the application menu
- *  WM_PAINT    - Paint the main window
  *  WM_DESTROY  - post a quit message and return
  *
  */
@@ -449,9 +437,6 @@ LRESULT CALLBACK ChildWndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lPa
             goto def;
         }
         break;
-    case WM_PAINT:
-        OnPaint(hWnd);
-        return 0;
     case WM_SETCURSOR:
         if (LOWORD(lParam) == HTCLIENT)
         {
index e8cdc02..fc18768 100644 (file)
@@ -71,6 +71,7 @@ BOOL InitInstance(HINSTANCE hInstance, int nCmdShow)
                                         IMAGE_ICON, GetSystemMetrics(SM_CXSMICON),
                                         GetSystemMetrics(SM_CYSMICON), LR_SHARED);
     wcFrame.hCursor = LoadCursorW(NULL, IDC_ARROW);
+    wcFrame.hbrBackground = (HBRUSH)(COLOR_3DFACE + 1);
     wcFrame.lpszClassName = szFrameClass;
 
     hFrameWndClass = RegisterClassExW(&wcFrame); /* register frame window class */