From 0a300669c426fcdfafe5a9a3b0cc452ca18f4c35 Mon Sep 17 00:00:00 2001 From: aquanull Date: Sun, 28 Apr 2013 08:02:52 +0800 Subject: [PATCH] Fix serious text/background misalignment in Controls dialog under many user-defined Windows font DPI settings. The background picture is now being stretched according to the size of the client area of the dialog. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In addition, change the encoding of ppsspp.rc to UCS-2/UTF-16 LE as it seems to be the only way to fix displaying of a certain non-ASCII character 'å' used in the version info of the compiled executable under cp1252-incompatible Windows locales. --- Windows/PPSSPP.vcxproj | 1 + Windows/PPSSPP.vcxproj.filters | 1 + Windows/WndMainWindow.cpp | 28 +++++++++++++++++++++++++--- Windows/ppsspp.rc | Bin 17243 -> 35556 bytes 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/Windows/PPSSPP.vcxproj b/Windows/PPSSPP.vcxproj index dc9b68a136..3e71c89480 100644 --- a/Windows/PPSSPP.vcxproj +++ b/Windows/PPSSPP.vcxproj @@ -318,6 +318,7 @@ + diff --git a/Windows/PPSSPP.vcxproj.filters b/Windows/PPSSPP.vcxproj.filters index 0a68a7ed76..12832db0f3 100644 --- a/Windows/PPSSPP.vcxproj.filters +++ b/Windows/PPSSPP.vcxproj.filters @@ -201,6 +201,7 @@ Windows + diff --git a/Windows/WndMainWindow.cpp b/Windows/WndMainWindow.cpp index 084495c251..7d44d08320 100644 --- a/Windows/WndMainWindow.cpp +++ b/Windows/WndMainWindow.cpp @@ -913,8 +913,30 @@ namespace MainWindow W32Util::CenterWindow(hDlg); { // TODO: connect to keyboard device instead - if (!hbm) - hbm = LoadImageFromResource(hInst, MAKEINTRESOURCE(IDB_IMAGE_PSP), "IMAGE"); + { + HBITMAP hResBM = LoadImageFromResource(hInst, MAKEINTRESOURCE(IDB_IMAGE_PSP), "IMAGE"); + HDC hDC = GetDC(hDlg); + RECT clientRect; + GetClientRect(hDlg, &clientRect); + HBITMAP hMemBM = CreateCompatibleBitmap(hDC, clientRect.right, clientRect.bottom); + HDC hResDC = CreateCompatibleDC(hDC); + HDC hMemDC = CreateCompatibleDC(hDC); + SelectObject(hResDC, hResBM); + SelectObject(hMemDC, hMemBM); + + BITMAP bm; + GetObject(hResBM, sizeof(BITMAP), &bm); + SetStretchBltMode(hMemDC, HALFTONE); + StretchBlt(hMemDC, 0, 0, clientRect.right, clientRect.bottom, hResDC, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY); + if (hbm) + DeleteObject(hbm); + hbm = hMemBM; + + DeleteDC(hMemDC); + DeleteDC(hResDC); + ReleaseDC(hDlg, hDC); + DeleteObject(hResBM); + } int key_pad_size = (IDC_EDIT_KEYRIGHT - IDC_EDIT_KEY_TURBO + 1); for (u32 i = 0; i <= IDC_EDIT_KEY_ANALOG_RIGHT - IDC_EDIT_KEY_TURBO; i++) { HWND hEdit = GetDlgItem(hDlg, IDC_EDIT_KEY_TURBO + i); @@ -935,7 +957,7 @@ namespace MainWindow { ComboBox_SetCurSel(GetDlgItem(hDlg, IDC_FORCE_INPUT_DEVICE), (g_Config.iForceInputDevice + 1)); } - DWORD dwThreadID = GetWindowThreadProcessId(hDlg,NULL); + DWORD dwThreadID = GetWindowThreadProcessId(hDlg, NULL); pKeydownHook = SetWindowsHookEx(WH_KEYBOARD,KeyboardProc, NULL, dwThreadID); } return TRUE; diff --git a/Windows/ppsspp.rc b/Windows/ppsspp.rc index fa0111f3df91d6978dcfe07c59c003f94848e8ec..1e7f8d07a9b4c85c563e38a2a75a8c22d64a69c9 100644 GIT binary patch literal 35556 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 literal 17243 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