Función DrawThemeText (uxtheme.h)

Dibuja texto con el color y la fuente definidos por el estilo visual.

Sintaxis

HRESULT DrawThemeText(
  [in] HTHEME  hTheme,
  [in] HDC     hdc,
  [in] int     iPartId,
  [in] int     iStateId,
  [in] LPCWSTR pszText,
  [in] int     cchText,
  [in] DWORD   dwTextFlags,
  [in] DWORD   dwTextFlags2,
  [in] LPCRECT pRect
);

Parámetros

[in] hTheme

Tipo: HTHEME

Controle los datos de tema de una ventana. Use OpenThemeData para crear un HTHEME.

[in] hdc

Tipo: HDC

HDC que se va a usar para dibujar.

[in] iPartId

Tipo: int

Elemento del control que tiene la apariencia del texto deseado. Vea Partes y estados. Si este valor es 0, el texto se dibuja en la fuente predeterminada o en una fuente seleccionada en el contexto del dispositivo.

[in] iStateId

Tipo: int

Estado del control que tiene la apariencia del texto deseado. Vea Partes y estados.

[in] pszText

Tipo: LPCWSTR

Puntero a una cadena que contiene el texto que se va a dibujar.

[in] cchText

Tipo: int

Valor de tipo int que contiene el número de caracteres que se van a dibujar. Si el parámetro se establece en -1, se dibujan todos los caracteres de la cadena.

[in] dwTextFlags

Tipo: DWORD

DWORD que contiene uno o más valores que especifican el formato de la cadena. Consulte Valores de formato para conocer los valores de parámetro posibles.

Nota DrawThemeText no admite DT_CALCRECT. Sin embargo, DrawThemeTextEx admite DT_CALCRECT.
 

[in] dwTextFlags2

Tipo: DWORD

No se usa. Establecer en cero.

[in] pRect

Tipo: LPCRECT

Puntero a una estructura RECT que contiene el rectángulo, en coordenadas lógicas, en la que se va a dibujar el texto. Se recomienda usar pExtentRect de GetThemeTextExtent para recuperar las coordenadas correctas.

Valor devuelto

Tipo: HRESULT

Si esta función se realiza correctamente, devuelve S_OK. De lo contrario, devuelve un código de error de HRESULT.

Comentarios

La función siempre usa la fuente temática para la parte y el estado especificados si se define una. De lo contrario, usa la fuente seleccionada actualmente en el contexto del dispositivo. Para averiguar si se define una fuente temática, puede llamar a GetThemeFont o GetThemePropertyOrigin con TMT_FONT como identificador de propiedad.

Ejemplos

DrawThemeText usa parámetros similares a la función DrawText de Win32, pero con algunas diferencias. Uno de los más notables es la compatibilidad con cadenas de caracteres anchos. Por lo tanto, las cadenas no anchas se deben convertir en cadenas anchas, como en el ejemplo siguiente.

Advertencia de seguridad: El uso de MultiByteToWideChar incorrectamente puede poner en peligro la seguridad de la aplicación. Asegúrese de que al crear búferes de caracteres anchos son lo suficientemente grandes como para acomodar el tamaño de la cadena en caracteres anchos, no en bytes.

INT cchText = GetWindowTextLength(_hwnd);
if (cchText > 0)
{
    TCHAR *pszText = new TCHAR[cchText+1];
    if (pszText)
    {
        if (GetWindowText(_hwnd, pszText, cchText+1))
        {
            int widelen = MultiByteToWideChar(CP_ACP, 0, reinterpret_cast<LPCSTR>(pszText), 
                    cchText+1, NULL, 0);
            WCHAR *pszWideText = new WCHAR[widelen+1];
            MultiByteToWideChar(CP_ACP, 0, reinterpret_cast<LPCSTR>(pszText), cchText, 
                    pszWideText, widelen);

            SetBkMode(hdcPaint, TRANSPARENT);
            DrawThemeText(_hTheme,
                    hdcPaint,
                    BP_PUSHBUTTON,
                    _iStateId,
                    pszWideText,
                    cchText,
                    DT_CENTER | DT_VCENTER | DT_SINGLELINE,
                    NULL,
                    &rcContent);

            delete [] pszWideText;
        }

        delete [] pszText;
    }
}

Requisitos

Requisito Value
Cliente mínimo compatible Windows Vista [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado uxtheme.h
Library UxTheme.lib
Archivo DLL UxTheme.dll

Consulte también

Identificadores de propiedad