https://git.reactos.org/?p=reactos.git;a=commitdiff;h=c4f42b5a65c5489e2b862…
commit c4f42b5a65c5489e2b8628ec6e196ea6909c4ea2
Author: Stanislav Motylkov <x86corez(a)gmail.com>
AuthorDate: Mon Sep 9 14:16:48 2024 +0300
Commit: Stanislav Motylkov <x86corez(a)gmail.com>
CommitDate: Mon Sep 9 15:26:54 2024 +0300
[UXTHEME] DrawNCPreview: Use DrawThemeTextEx() for drawing "Window Text"
Addendum to 118869f69 and d4dc0cb54. CORE-5991
---
dll/win32/uxtheme/nonclient.c | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
diff --git a/dll/win32/uxtheme/nonclient.c b/dll/win32/uxtheme/nonclient.c
index e78a62ed4ac..89fb621c5a0 100644
--- a/dll/win32/uxtheme/nonclient.c
+++ b/dll/win32/uxtheme/nonclient.c
@@ -1286,10 +1286,16 @@ HRESULT WINAPI DrawNCPreview(HDC hDC,
if (textFont)
SelectFont(hDC, textFont);
- SetTextColor(hDC, GetThemeSysColor(context.theme, TMT_WINDOWTEXT));
+ HTHEME hBtnTheme = OpenThemeDataFromFile(hThemeFile, hwndDummy, L"BUTTON",
OTD_NONCLIENT);
len = LoadStringW(hDllInst, IDS_WINTEXT, (LPWSTR)&szText, 0);
if (len > 0)
- DrawThemeText(context.theme, hDC, WP_DIALOG, 0, szText, len, DT_LEFT | DT_TOP |
textDrawFlags, 0, &rcWindowClient);
+ {
+ DTTOPTS dttOpts = { sizeof(dttOpts) };
+ dttOpts.dwFlags = DTT_TEXTCOLOR;
+ dttOpts.crText = GetThemeSysColor(context.theme, COLOR_WINDOWTEXT);
+
+ DrawThemeTextEx(hBtnTheme, hDC, BP_PUSHBUTTON, PBS_DEFAULTED, szText, len,
DT_LEFT | DT_TOP | textDrawFlags, &rcWindowClient, &dttOpts);
+ }
/* Draw preview dialog window */
SetWindowResourceText(hwndDummy, IDS_MESSAGEBOX);
@@ -1307,7 +1313,6 @@ HRESULT WINAPI DrawNCPreview(HDC hDC,
DrawWindowForNCPreview(hDC, &context, msgBoxHCenter -
NC_PREVIEW_MSGBOX_HALF_WIDTH, msgBoxVCenter + NC_PREVIEW_MSGBOX_OFFSET_X, msgBoxHCenter +
NC_PREVIEW_MSGBOX_HALF_WIDTH, msgBoxVCenter + NC_PREVIEW_MSGBOX_OFFSET_Y, COLOR_BTNFACE,
&rcWindowClient);
/* Draw preview dialog button */
- HTHEME hBtnTheme = OpenThemeDataFromFile(hThemeFile, hwndDummy, L"BUTTON",
OTD_NONCLIENT);
if (hBtnTheme)
{
INT btnCenterH = rcWindowClient.left + ((rcWindowClient.right -
rcWindowClient.left) / 2);