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.
[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 |