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?