From 543ce4f49518be2c3eea259173bb1144a86e776c Mon Sep 17 00:00:00 2001 From: berryplus Date: Sat, 24 Nov 2018 16:54:30 +0900 Subject: [PATCH 1/2] =?UTF-8?q?=E3=83=95=E3=82=A9=E3=83=B3=E3=83=88?= =?UTF-8?q?=E3=83=A9=E3=83=99=E3=83=AB=E3=81=AEHighDPI=E5=AF=BE=E5=BF=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 選択したフォントをサイズ含めて表示するラベルの文字が、HighDPI環境で小さくなる事象への対応。 フォントサイズの上限値がHighDPI対応してなかっために強制的に小さなフォントで描画されていた。 上限値をHighDPI対応にすることでこの問題を回避する。 --- sakura_core/prop/CPropCommon.cpp | 7 +++++-- sakura_core/typeprop/CPropTypes.cpp | 7 +++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/sakura_core/prop/CPropCommon.cpp b/sakura_core/prop/CPropCommon.cpp index a26a7cd3c2..89b6bfe81d 100644 --- a/sakura_core/prop/CPropCommon.cpp +++ b/sakura_core/prop/CPropCommon.cpp @@ -44,6 +44,7 @@ #include "env/CDocTypeManager.h" #include "CEditApp.h" #include "util/shell.h" +#include "util/window.h" #include "sakura_rc.h" int CPropCommon::SearchIntArr( int nKey, int* pnArr, int nArrNum ) @@ -495,9 +496,11 @@ HFONT CPropCommon::SetFontLabel( HWND hwndDlg, int idc_static, const LOGFONT& lf TCHAR szFontName[80]; LOGFONT lfTemp; lfTemp = lf; + // 大きすぎるフォントは小さく表示 - if( lfTemp.lfHeight < -16 ){ - lfTemp.lfHeight = -16; + int limitSize = DpiScaleY( 16 ); + if ( lfTemp.lfHeight < -limitSize ) { + lfTemp.lfHeight = -limitSize; } hFont = SetCtrlFont( hwndDlg, idc_static, lfTemp ); diff --git a/sakura_core/typeprop/CPropTypes.cpp b/sakura_core/typeprop/CPropTypes.cpp index 64c9a89bfd..52930c0ee3 100644 --- a/sakura_core/typeprop/CPropTypes.cpp +++ b/sakura_core/typeprop/CPropTypes.cpp @@ -26,6 +26,7 @@ #include "CEditApp.h" #include "view/colors/EColorIndexType.h" #include "util/shell.h" +#include "util/window.h" #include "sakura_rc.h" @@ -282,9 +283,11 @@ HFONT CPropTypes::SetFontLabel( HWND hwndDlg, int idc_static, const LOGFONT& lf, TCHAR szFontName[80]; LOGFONT lfTemp; lfTemp = lf; + // 大きすぎるフォントは小さく表示 - if( lfTemp.lfHeight < -16 ){ - lfTemp.lfHeight = -16; + int limitSize = DpiScaleY( 16 ); + if ( lfTemp.lfHeight < -limitSize ) { + lfTemp.lfHeight = -limitSize; } if (bUse) { From f83384c127c662f92c45e113a742041e10fea73b Mon Sep 17 00:00:00 2001 From: berryplus Date: Sat, 24 Nov 2018 23:03:24 +0900 Subject: [PATCH 2/2] =?UTF-8?q?DPI=E5=A4=89=E6=8F=9B=E3=81=ABPt=E5=8D=98?= =?UTF-8?q?=E4=BD=8D=E3=82=92=E4=BD=BF=E3=81=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 固定値16ptをlfHeightと直接比較するのをやめ、DPI変換した値で比較する。lfHeightの値は既にDPI変換されているので修正箇所は16ptのほうだけ。 --- sakura_core/prop/CPropCommon.cpp | 2 +- sakura_core/typeprop/CPropTypes.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/sakura_core/prop/CPropCommon.cpp b/sakura_core/prop/CPropCommon.cpp index 89b6bfe81d..f5109de8eb 100644 --- a/sakura_core/prop/CPropCommon.cpp +++ b/sakura_core/prop/CPropCommon.cpp @@ -498,7 +498,7 @@ HFONT CPropCommon::SetFontLabel( HWND hwndDlg, int idc_static, const LOGFONT& lf lfTemp = lf; // 大きすぎるフォントは小さく表示 - int limitSize = DpiScaleY( 16 ); + LONG limitSize = ::DpiPointsToPixels( 16 ); if ( lfTemp.lfHeight < -limitSize ) { lfTemp.lfHeight = -limitSize; } diff --git a/sakura_core/typeprop/CPropTypes.cpp b/sakura_core/typeprop/CPropTypes.cpp index 52930c0ee3..5e90179034 100644 --- a/sakura_core/typeprop/CPropTypes.cpp +++ b/sakura_core/typeprop/CPropTypes.cpp @@ -285,7 +285,7 @@ HFONT CPropTypes::SetFontLabel( HWND hwndDlg, int idc_static, const LOGFONT& lf, lfTemp = lf; // 大きすぎるフォントは小さく表示 - int limitSize = DpiScaleY( 16 ); + LONG limitSize = ::DpiPointsToPixels( 16 ); if ( lfTemp.lfHeight < -limitSize ) { lfTemp.lfHeight = -limitSize; }