[PATCH] comctl32: Use correct font for themed headers. (try 2)

Nikolay Sivov bunglehead at gmail.com
Mon Mar 23 02:59:17 CDT 2015


On 23.03.2015 10:51, Mark Harmstone wrote:

Hi, Mark. Thanks for looking into this.

> +
> +	    if (theme) {
> +		LOGFONTW lf;
> +		HRESULT hr = GetThemeFont(theme, hdc, HP_HEADERITEM, state, TMT_FONT, &lf);
> +		if (SUCCEEDED(hr)) {
> +		    font = CreateFontIndirectW(&lf);
> +		    if (!font)
> +			TRACE("Failed to create font\n");
> +		    else {
> +			TRACE("font = %s\n", debugstr_w(lf.lfFaceName));
> +			oldfont = SelectObject(hdc, font);
> +			created_font = TRUE;
> +		    }
> +		} else {
> +		    font = (HFONT)SendMessageW(infoPtr->hwndSelf, WM_GETFONT, 0, 0);
> +		    oldfont = SelectObject(hdc, font);
> +		}
> +	    }
> +
>  	    DrawTextW (hdc, phdi->pszText, -1,
>  	               &textRect, DT_LEFT|DT_VCENTER|DT_SINGLELINE|DT_CALCRECT);
>  	    cw = textRect.right - textRect.left + 2 * infoPtr->iMargin;
> +
> +	    if (font) SelectObject(hdc, oldfont);
> +	    if (created_font) DeleteObject(font);

This seems to essentially duplicate GetThemeTextExtent(). Any reason why 
you can't use it instead?



More information about the wine-devel mailing list