diff --git a/sakura_core/util/shell.cpp b/sakura_core/util/shell.cpp index 9c093367c8..6435f8b832 100644 --- a/sakura_core/util/shell.cpp +++ b/sakura_core/util/shell.cpp @@ -257,13 +257,19 @@ static LRESULT CALLBACK PropSheetWndProc( HWND hwnd, UINT uMsg, WPARAM wParam, L */ static int CALLBACK PropSheetProc( HWND hwndDlg, UINT uMsg, LPARAM lParam ) { - // プロパティシートの初期化時にボタン追加、プロパティシートのサブクラス化を行う + // プロパティシートの初期化時にシステムフォント設定、ボタン追加、プロパティシートのサブクラス化を行う if( uMsg == PSCB_INITIALIZED ){ - s_pOldPropSheetWndProc = (WNDPROC)::SetWindowLongPtr( hwndDlg, GWLP_WNDPROC, (LONG_PTR)PropSheetWndProc ); - HINSTANCE hInstance = (HINSTANCE)::GetModuleHandle( NULL ); - HWND hwndBtn = ::CreateWindowEx( 0, WC_BUTTON, LS(STR_SHELL_INIFOLDER), BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 0, 0, 140, 20, hwndDlg, (HMENU)0x02000, hInstance, NULL ); - ::SendMessage( hwndBtn, WM_SETFONT, (WPARAM)::SendMessage( hwndDlg, WM_GETFONT, 0, 0 ), MAKELPARAM( FALSE, 0 ) ); - ::SetWindowPos( hwndBtn, ::GetDlgItem( hwndDlg, IDHELP), 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE ); + // システムフォント設定は言語設定に関係なく実施(force=TRUE) + HFONT hFont = UpdateDialogFont( hwndDlg, TRUE ); + + if( CShareData::getInstance()->IsPrivateSettings() ){ + // 個人設定フォルダを使用するときは「設定フォルダ」ボタンを追加する + s_pOldPropSheetWndProc = (WNDPROC)::SetWindowLongPtr( hwndDlg, GWLP_WNDPROC, (LONG_PTR)PropSheetWndProc ); + HINSTANCE hInstance = (HINSTANCE)::GetModuleHandle( NULL ); + HWND hwndBtn = ::CreateWindowEx( 0, WC_BUTTON, LS(STR_SHELL_INIFOLDER), BS_PUSHBUTTON | WS_CHILD | WS_VISIBLE | WS_TABSTOP, 0, 0, 140, 20, hwndDlg, (HMENU)0x02000, hInstance, NULL ); + ::SendMessage( hwndBtn, WM_SETFONT, (WPARAM)hFont, MAKELPARAM( FALSE, 0 ) ); + ::SetWindowPos( hwndBtn, ::GetDlgItem( hwndDlg, IDHELP), 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE ); + } } return 0; } @@ -274,11 +280,9 @@ static int CALLBACK PropSheetProc( HWND hwndDlg, UINT uMsg, LPARAM lParam ) */ INT_PTR MyPropertySheet( LPPROPSHEETHEADER lppsph ) { - // 個人設定フォルダを使用するときは「設定フォルダ」ボタンを追加する - if( CShareData::getInstance()->IsPrivateSettings() ){ - lppsph->dwFlags |= PSH_USECALLBACK; - lppsph->pfnCallback = PropSheetProc; - } + lppsph->dwFlags |= PSH_USECALLBACK; + lppsph->pfnCallback = PropSheetProc; + return ::PropertySheet( lppsph ); } diff --git a/sakura_core/util/window.cpp b/sakura_core/util/window.cpp index 76550b589a..5042ad7865 100644 --- a/sakura_core/util/window.cpp +++ b/sakura_core/util/window.cpp @@ -381,15 +381,16 @@ void SetFontRecursive( HWND hwnd, HFONT hFont ) } /*! - ダイアログボックス用のフォントを設定(日本語以外では何もしない) + ダイアログボックス用のフォントを設定 @param[in] hwnd 設定対象ダイアログボックスのウィンドウハンドル + @param[in] force 強制設定有無(TRUE:必ず設定 FALSE:日本語の場合は設定しそれ以外では設定しない) @return ダイアログボックスに設定されたフォントハンドル(破棄禁止) */ -HFONT UpdateDialogFont( HWND hwnd ) +HFONT UpdateDialogFont( HWND hwnd, BOOL force ) { HFONT hFontDialog = (HFONT)::SendMessageAny( hwnd, WM_GETFONT, 0, (LPARAM)NULL ); - if( wcsncmp_literal( CSelectLang::getDefaultLangString(), _T("Japanese") ) != 0 ){ + if( !force && wcsncmp_literal( CSelectLang::getDefaultLangString(), _T("Japanese") ) != 0 ){ return hFontDialog; } diff --git a/sakura_core/util/window.h b/sakura_core/util/window.h index 1605141e91..0e20853a10 100644 --- a/sakura_core/util/window.h +++ b/sakura_core/util/window.h @@ -192,6 +192,6 @@ class CDCFont HFONT m_hFont; }; -HFONT UpdateDialogFont( HWND hwnd ); +HFONT UpdateDialogFont( HWND hwnd, BOOL force = FALSE ); #endif /* SAKURA_WINDOW_A0833476_5E32_46BE_87B6_ECD55F10D34A_H_ */