@@ -74,6 +74,7 @@ class CImgMergeWindow : public IImgMergeWindow
7474 , m_gdiplusToken(0 )
7575 , m_timerPrev()
7676 , m_timerNext()
77+ , m_bDarkBackgroundEnabled(false )
7778 {
7879 for (int i = 0 ; i < 3 ; ++i)
7980 m_ChildWndProc[i] = NULL ;
@@ -867,6 +868,7 @@ class CImgMergeWindow : public IImgMergeWindow
867868 m_imgWindow[i].SetScrollBar (m_bHorizontalSplit ? SB_VERT : SB_HORZ);
868869 m_imgWindow[i].SetWindowRect (rects[i]);
869870 m_imgWindow[i].SetImage (m_buffer.GetImage (i)->getFipImage ());
871+ m_imgWindow[i].SetDarkBackgroundEnabled (m_bDarkBackgroundEnabled);
870872 }
871873
872874 Event evt;
@@ -899,6 +901,7 @@ class CImgMergeWindow : public IImgMergeWindow
899901 m_imgWindow[i].SetScrollBar (m_bHorizontalSplit ? SB_VERT : SB_HORZ);
900902 m_imgWindow[i].SetWindowRect (rects[i]);
901903 m_imgWindow[i].SetImage (m_buffer.GetImage (i)->getFipImage ());
904+ m_imgWindow[i].SetDarkBackgroundEnabled (m_bDarkBackgroundEnabled);
902905 }
903906
904907 Event evt;
@@ -1206,6 +1209,25 @@ class CImgMergeWindow : public IImgMergeWindow
12061209 m_buffer.SetOverlayAnimationInterval (interval);
12071210 }
12081211
1212+ bool IsDarkBackgroundEnabled () const
1213+ {
1214+ return m_bDarkBackgroundEnabled;
1215+ }
1216+
1217+ void SetDarkBackgroundEnabled (bool enabled)
1218+ {
1219+ m_bDarkBackgroundEnabled = enabled;
1220+ if (m_hWnd)
1221+ {
1222+ for (int pane = 0 ; pane < m_nImages; ++pane)
1223+ m_imgWindow[pane].SetDarkBackgroundEnabled (m_bDarkBackgroundEnabled);
1224+ DeleteObject (s_hbrBackground );
1225+ s_hbrBackground = CreateSolidBrush (m_bDarkBackgroundEnabled ? RGB (0 , 0 , 0 ) : GetSysColor (COLOR_3DFACE));
1226+ SetClassLongPtr (m_hWnd, GCLP_HBRBACKGROUND, (LONG_PTR)s_hbrBackground);
1227+ InvalidateRect (m_hWnd, NULL , TRUE );
1228+ }
1229+ }
1230+
12091231private:
12101232
12111233 ATOM MyRegisterClass (HINSTANCE hInstance)
@@ -1218,7 +1240,7 @@ class CImgMergeWindow : public IImgMergeWindow
12181240 wcex.cbWndExtra = 0 ;
12191241 wcex.hInstance = hInstance;
12201242 wcex.hCursor = LoadCursor (NULL , IDC_ARROW);
1221- wcex.hbrBackground = (HBRUSH)(COLOR_3DFACE+ 1 ) ;
1243+ wcex.hbrBackground = s_hbrBackground ;
12221244 wcex.lpszClassName = L" WinImgMergeWindowClass" ;
12231245 return RegisterClassExW (&wcex);
12241246 }
@@ -1978,6 +2000,7 @@ class CImgMergeWindow : public IImgMergeWindow
19782000 int m_nImages;
19792001 HWND m_hWnd;
19802002 HINSTANCE m_hInstance;
2003+ inline static HBRUSH s_hbrBackground = CreateSolidBrush(GetSysColor(COLOR_3DFACE));
19812004 CImgWindow m_imgWindow[3 ];
19822005 WNDPROC m_ChildWndProc[3 ];
19832006 std::vector<EventListenerInfo> m_listener;
@@ -1995,4 +2018,5 @@ class CImgMergeWindow : public IImgMergeWindow
19952018 std::unique_ptr<ocr::COcr> m_pOcr;
19962019 std::chrono::milliseconds m_timerPrev;
19972020 std::chrono::milliseconds m_timerNext;
2021+ bool m_bDarkBackgroundEnabled;
19982022};
0 commit comments