diff --git a/dlls/comctl32/header.c b/dlls/comctl32/header.c index 29b35cf14d2..38a3b2186d1 100644 --- a/dlls/comctl32/header.c +++ b/dlls/comctl32/header.c @@ -158,7 +158,7 @@ HEADER_DrawItem (HWND hwnd, HDC hdc, INT iItem, BOOL bHotTrack) RECT r; INT oldBkMode; - TRACE("DrawItem(iItem %d bHotTrack %d)\n", iItem, bHotTrack); + TRACE("DrawItem(iItem %d bHotTrack %d unicode flag %d)\n", iItem, bHotTrack, infoPtr->bUnicode); if (!infoPtr->bRectsValid) HEADER_SetItemBounds(hwnd); @@ -253,7 +253,11 @@ HEADER_DrawItem (HWND hwnd, HDC hdc, INT iItem, BOOL bHotTrack) GetObjectA (phdi->hbm, sizeof(BITMAP), (LPVOID)&bmp); textRect = r; - DrawTextW (hdc, phdi->pszText, -1, + if (infoPtr->bUnicode) + DrawTextW (hdc, phdi->pszText, -1, + &textRect, DT_LEFT|DT_VCENTER|DT_SINGLELINE|DT_CALCRECT); + else + DrawTextA (hdc, (LPCSTR)phdi->pszText, -1, &textRect, DT_LEFT|DT_VCENTER|DT_SINGLELINE|DT_CALCRECT); tx = textRect.right - textRect.left; ry = r.bottom - r.top; @@ -310,7 +314,11 @@ HEADER_DrawItem (HWND hwnd, HDC hdc, INT iItem, BOOL bHotTrack) r.left += 3 ; r.right -= 3; SetTextColor (hdc, (bHotTrack) ? COLOR_HIGHLIGHT : COLOR_BTNTEXT); - DrawTextW (hdc, phdi->pszText, -1, + if (infoPtr->bUnicode) + DrawTextW (hdc, phdi->pszText, -1, + &r, uTextJustify|DT_END_ELLIPSIS|DT_VCENTER|DT_SINGLELINE); + else + DrawTextA (hdc, (LPCSTR)phdi->pszText, -1, &r, uTextJustify|DT_END_ELLIPSIS|DT_VCENTER|DT_SINGLELINE); if (oldBkMode != TRANSPARENT) SetBkMode(hdc, oldBkMode);