[MSPAINT] Remember status bar visibility (#5145)

- Add ShowStatusBar registry setting.
- Save ShowStatusBar status and restore the status on startup.
CORE-18867
This commit is contained in:
Katayama Hirofumi MZ 2023-03-11 11:41:52 +09:00 committed by GitHub
parent 4ce819ca5a
commit 9ff9295a22
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 9 additions and 2 deletions

View file

@ -239,9 +239,11 @@ _tWinMain (HINSTANCE hThisInstance, HINSTANCE hPrevInstance, LPTSTR lpszArgument
/* creating the status bar */
hStatusBar =
CreateWindowEx(0, STATUSCLASSNAME, NULL, SBARS_SIZEGRIP | WS_CHILD | WS_VISIBLE, 0, 0, 0, 0, hwnd,
CreateWindowEx(0, STATUSCLASSNAME, NULL, SBARS_SIZEGRIP | WS_CHILD, 0, 0, 0, 0, hwnd,
NULL, hThisInstance, NULL);
SendMessage(hStatusBar, SB_SETMINHEIGHT, 21, 0);
if (registrySettings.ShowStatusBar)
ShowWindow(hStatusBar, SW_SHOWNOACTIVATE);
RECT scrlClientWindowPos = {0, 0, 0 + 500, 0 + 500};
scrlClientWindow.Create(scrollboxWindow.m_hWnd, scrlClientWindowPos, NULL, WS_CHILD | WS_VISIBLE);

View file

@ -74,6 +74,7 @@ void RegistrySettings::LoadPresets()
FontsPositionX = 0;
FontsPositionY = 0;
ShowTextTool = TRUE;
ShowStatusBar = TRUE;
LOGFONT lf;
GetObject(GetStockObject(DEFAULT_GUI_FONT), sizeof(lf), &lf);
@ -100,6 +101,7 @@ void RegistrySettings::Load()
ReadDWORD(view, _T("ThumbXPos"), ThumbXPos, TRUE);
ReadDWORD(view, _T("ThumbYPos"), ThumbYPos, TRUE);
ReadDWORD(view, _T("UnitSetting"), UnitSetting, FALSE);
ReadDWORD(view, _T("ShowStatusBar"), ShowStatusBar, FALSE);
ULONG pnBytes = sizeof(WINDOWPLACEMENT);
view.QueryBinaryValue(_T("WindowPlacement"), &WindowPlacement, &pnBytes);
@ -152,6 +154,7 @@ void RegistrySettings::Store()
view.SetDWORDValue(_T("ThumbXPos"), ThumbXPos);
view.SetDWORDValue(_T("ThumbYPos"), ThumbYPos);
view.SetDWORDValue(_T("UnitSetting"), UnitSetting);
view.SetDWORDValue(_T("ShowStatusBar"), ShowStatusBar);
view.SetBinaryValue(_T("WindowPlacement"), &WindowPlacement, sizeof(WINDOWPLACEMENT));
}

View file

@ -41,6 +41,7 @@ public:
DWORD FontsPositionX;
DWORD FontsPositionY;
DWORD ShowTextTool;
DWORD ShowStatusBar;
enum WallpaperStyle {
TILED,

View file

@ -729,7 +729,8 @@ LRESULT CMainWindow::OnCommand(UINT nMsg, WPARAM wParam, LPARAM lParam, BOOL& bH
alignChildrenToMainWindow();
break;
case IDM_VIEWSTATUSBAR:
::ShowWindow(hStatusBar, ::IsWindowVisible(hStatusBar) ? SW_HIDE : SW_SHOW);
registrySettings.ShowStatusBar = !::IsWindowVisible(hStatusBar);
::ShowWindow(hStatusBar, (registrySettings.ShowStatusBar ? SW_SHOWNOACTIVATE : SW_HIDE));
alignChildrenToMainWindow();
break;
case IDM_FORMATICONBAR: