タイトルバーの強制フォント設定を操作できるようにした。

タイトルバーの強制フォント設定表示リソースを追加した。
タイトルバーの強制フォント設定メニューを追加した。
タイトルバーの強制フォント設定が設定されているときにタイトルバーのフォント選択を可能にした。
This commit is contained in:
Tatsuhiko Shoji
2025-02-24 16:39:05 +09:00
parent b7d676020b
commit 619a97e89f
7 changed files with 57 additions and 10 deletions

View File

@@ -184,22 +184,22 @@ INT_PTR CALLBACK BaseDialog::dialogProc(HWND hDlg, UINT message, WPARAM wParam,
case WM_INITDIALOG:
this->hWnd = hDlg;
result = OnInitDialog();
return TRUE;
return (INT_PTR)TRUE;
case WM_SHOWWINDOW:
if (wParam == TRUE) {
PostMessage(this->hWnd, WM_DIALOG_SHOWN, 0, 0);
}
return TRUE;
return (INT_PTR)TRUE;
case WM_DIALOG_SHOWN:
result = OnWindowShown(wParam, lParam);
PostMessage(this->hWnd, WM_DIALOG_CREATED, 0, 0);
return TRUE;
return (INT_PTR)TRUE;
case WM_DIALOG_CREATED:
result = OnWindowCreated(wParam, lParam);
return TRUE;
return (INT_PTR)TRUE;
case WM_COMMAND:
result = OnCommand(wParam);

View File

@@ -1,5 +1,5 @@
/*
noMeiryoUI (C) 2005,2012-2024 Tatsuhiko Shoji
noMeiryoUI (C) 2005,2012-2025 Tatsuhiko Shoji
The sources for noMeiryoUI are distributed under the MIT open source license
*/
@@ -283,5 +283,11 @@ void readResourceFile(TCHAR *file)
readResourceItem(file, _T("MENU_TOOLS_NO_MULTI_RUN"),
_T("&Don't run multiply")
);
readResourceItem(file, _T("MENU_FORCE_TITLE_SET"),
_T("F&orce title bar font change enabled")
);
readResourceItem(file, _T("MSG_FORCE_TITLE_SET"),
_T("Changeing titlebar font may cause some troubles.")
);
}

View File

@@ -1,5 +1,5 @@
/*
noMeiryoUI (C) 2005,2012-2024 Tatsuhiko Shoji
noMeiryoUI (C) 2005,2012-2025 Tatsuhiko Shoji
The sources for noMeiryoUI are distributed under the MIT open source license
*/
@@ -96,6 +96,8 @@ The sources for noMeiryoUI are distributed under the MIT open source license
#define MSG_WIN11_22H2RESTRICTION 85
#define MENU_CHOICE_APP_FONT 86
#define MENU_DONT_RUN_MULTIPLY 87
#define MENU_FORCE_TITLE_SET 88
#define MSG_FORCE_TITLE_SET 89
extern void readResourceFile(TCHAR *file);

View File

@@ -272,6 +272,7 @@ int NoMeiryoUI::OnAppliStart(TCHAR *lpCmdLine)
usePreset = false;
autosetDelay = 0;
forceTitleFontSet = false;
loadConfig();
handleMultipleRun();
@@ -455,6 +456,8 @@ INT_PTR NoMeiryoUI::OnWindowShown(WPARAM wParam, LPARAM lParam)
appMenu->setEnabled(IDM_SET_8, has8Preset);
appMenu->setEnabled(IDM_SET_10, has10Preset);
appMenu->setEnabled(IDM_SET_11, has11Preset);
// <20><><EFBFBD><EFBFBD><EFBFBD>N<EFBFBD><4E><EFBFBD>ݒ<EFBFBD>
if (!multiRun) {
appMenu->CheckMenuItem(IDM_NO_MULTI_RUN, true);
}
@@ -516,7 +519,7 @@ INT_PTR NoMeiryoUI::OnWindowShown(WPARAM wParam, LPARAM lParam)
}
/**
* WM_SHOWWINDOW<EFBFBD><EFBFBD><EFBFBD>b<EFBFBD>Z<EFBFBD>[<5B>W<EFBFBD>ɂ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԕύX<EFBFBD><EFBFBD><EFBFBD>̏<EFBFBD><EFBFBD><EFBFBD>
* <EFBFBD>_<EFBFBD>C<EFBFBD>A<EFBFBD><EFBFBD><EFBFBD>O<EFBFBD><EFBFBD><EFBFBD>\<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɍs<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
*
* @param wParam WPARAM
* @param lParam lParam
@@ -528,13 +531,15 @@ INT_PTR NoMeiryoUI::OnWindowCreated(WPARAM wParam, LPARAM lParam)
if (compatLevel > 0) {
titleFontButton->EnableWindow(FALSE);
appMenu->setEnabled(IDM_FORCE_TITLE_SET, true);
// <20><><EFBFBD>[<5B>j<EFBFBD><6A><EFBFBD>O<EFBFBD><4F><EFBFBD>b<EFBFBD>Z<EFBFBD>[<5B>W in Win11 22H2
MessageBox(this->getHwnd(), langResource[MSG_WIN11_22H2RESTRICTION].c_str(),
langResource[MSG_WARNING].c_str(), MB_OK | MB_ICONWARNING);
//MessageBox(this->getHwnd(), _T("Windows 11<31>̃o<CC83>J<EFBFBD><4A><EFBFBD><EFBFBD><EFBFBD>["),
// _T("<22><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><E1829F><EFBFBD><EFBFBD><EFBFBD>႟"), MB_OK | MB_ICONWARNING);
} else {
appMenu->setEnabled(IDM_FORCE_TITLE_SET, false);
}
return (INT_PTR)0;
@@ -877,6 +882,7 @@ void NoMeiryoUI::applyDisplayText()
appMenu->setText(2, langResource[10].c_str(), TRUE);
appMenu->setText(IDM_CHOICE_APP_FONT, langResource[MENU_CHOICE_APP_FONT].c_str(), FALSE);
appMenu->setText(IDM_NO_MULTI_RUN, langResource[MENU_DONT_RUN_MULTIPLY].c_str(), FALSE);
appMenu->setText(IDM_FORCE_TITLE_SET, langResource[MENU_FORCE_TITLE_SET].c_str(), FALSE);
appMenu->setText(IDM_ANOTHER, langResource[MENU_TOOLS_THREAD].c_str(), FALSE);
appMenu->setText(IDM_COMPAT7, langResource[MENU_TOOLS_SEVEN].c_str(), FALSE);
appMenu->setText(3, langResource[13].c_str(), TRUE);
@@ -1202,6 +1208,9 @@ INT_PTR NoMeiryoUI::OnCommand(WPARAM wParam)
case IDM_NO_MULTI_RUN:
toggleMultiRun();
return (INT_PTR)0;
case IDM_FORCE_TITLE_SET:
toggleForceTitleSet();
return (INT_PTR)0;
case IDM_HELPTOPIC:
showHelp();
@@ -1247,6 +1256,30 @@ void NoMeiryoUI::toggleMultiRun()
saveConfig();
}
/**
* @brief Windows 11 22H2<48>ȍ~<7E>ł̋<C582><CC8B><EFBFBD><EFBFBD>t<EFBFBD>H<EFBFBD><48><EFBFBD>g<EFBFBD>ݒ<EFBFBD><DD92>؂<EFBFBD><D882>ւ<EFBFBD>
*/
void NoMeiryoUI::toggleForceTitleSet()
{
if (appMenu->isChecked(IDM_FORCE_TITLE_SET)) {
appMenu->CheckMenuItem(IDM_FORCE_TITLE_SET, false);
forceTitleFontSet = false;
if (compatLevel > 0) {
titleFontButton->EnableWindow(FALSE);
}
} else {
appMenu->CheckMenuItem(IDM_FORCE_TITLE_SET, true);
forceTitleFontSet = true;
if (compatLevel > 0) {
titleFontButton->EnableWindow(TRUE);
MessageBox(this->getHwnd(), langResource[MSG_FORCE_TITLE_SET].c_str(),
langResource[MSG_WARNING].c_str(), MB_OK | MB_ICONWARNING);
}
}
}
/**
* <20>t<EFBFBD>H<EFBFBD><48><EFBFBD>g<EFBFBD><67><EFBFBD>I<EFBFBD><49><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>B
*
@@ -1361,7 +1394,7 @@ void NoMeiryoUI::selectFont(enum fontType type)
case title:
// Silently ignore on Win11 22H2
if (compatLevel < 1) {
if ((compatLevel < 1) || (forceTitleFontSet)) {
metrics.lfCaptionFont = logfont;
titleFontName = logfont.lfFaceName;

View File

@@ -116,6 +116,7 @@ private:
bool firstShow;
int autosetDelay;
bool forceTitleFontSet;
void OnLoad();
BOOL loadFontInfo(TCHAR *filename);
@@ -162,6 +163,8 @@ private:
protected:
INT_PTR OnCommand(WPARAM wParam);
void toggleForceTitleSet();
public:
BaseDialog *createBaseDialog();

View File

@@ -247,6 +247,7 @@ BEGIN
MENUITEM "<22>ʃX<CA83><58><EFBFBD>b<EFBFBD>h<EFBFBD>Ńt<C583>H<EFBFBD><48><EFBFBD>g<EFBFBD><67><EFBFBD>ύX<CF8D><58><EFBFBD><EFBFBD>(&A)", IDM_ANOTHER
MENUITEM "<22>t<EFBFBD>H<EFBFBD><48><EFBFBD>g<EFBFBD>T<EFBFBD>C<EFBFBD>Y<EFBFBD><59>Windows 7<>Ɠ<EFBFBD><C693>l<EFBFBD>Ɉ<EFBFBD><C988><EFBFBD>(&7)", IDM_COMPAT7
MENUITEM "<22><><EFBFBD>d<EFBFBD>N<EFBFBD><4E><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ȃ<EFBFBD>(&D)", IDM_NO_MULTI_RUN
MENUITEM "<22>^<5E>C<EFBFBD>g<EFBFBD><67><EFBFBD>o<EFBFBD>[<5B>̃t<CC83>H<EFBFBD><48><EFBFBD>g<EFBFBD><67><EFBFBD>ύX<CF8D>”\<5C>ɂ<EFBFBD><C982><EFBFBD>(&O)", IDM_FORCE_TITLE_SET
END
POPUP "<22>w<EFBFBD><77><EFBFBD>v(&H)"
BEGIN

View File

@@ -81,6 +81,8 @@
#define IDM_SET_11 32792
#define IDM_NO_MULTI_RUN 32793
#define IDM_CHOICE_APP_FONT 32794
#define ID_32795 32795
#define IDM_FORCE_TITLE_SET 32796
#define IDC_STATIC -1
#define IDC_STATIC_CHARSET -1
#define IDC_GROUP_INDIVIDUAL -1
@@ -91,7 +93,7 @@
#ifndef APSTUDIO_READONLY_SYMBOLS
#define _APS_NO_MFC 1
#define _APS_NEXT_RESOURCE_VALUE 134
#define _APS_NEXT_COMMAND_VALUE 32795
#define _APS_NEXT_COMMAND_VALUE 32797
#define _APS_NEXT_CONTROL_VALUE 1024
#define _APS_NEXT_SYMED_VALUE 110
#endif