Função DrawThemeText (uxtheme.h)
Desenha texto usando a cor e a fonte definidas pelo estilo visual.
Sintaxe
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
Manipule para os dados de tema de uma janela. Use OpenThemeData para criar um HTHEME.
[in] hdc
Tipo: HDC
HDC a ser usado para desenho.
[in] iPartId
Tipo: int
A parte de controle que tem a aparência de texto desejada. Consulte Partes e Estados. Se esse valor for 0, o texto será desenhado na fonte padrão, ou uma fonte selecionada no contexto do dispositivo.
[in] iStateId
Tipo: int
O estado de controle que tem a aparência de texto desejada. Consulte Partes e Estados.
[in] pszText
Tipo: LPCWSTR
Ponteiro para uma cadeia de caracteres que contém o texto a ser desenhado.
[in] cchText
Tipo: int
Valor do tipo int que contém o número de caracteres a serem desenhados. Se o parâmetro for definido como -1, todos os caracteres na cadeia de caracteres serão desenhados.
[in] dwTextFlags
Tipo: DWORD
DWORD que contém um ou mais valores que especificam a formatação da cadeia de caracteres. Consulte Formatar valores para obter valores de parâmetro possíveis.
[in] dwTextFlags2
Tipo: DWORD
Não usado. Defina como zero.
[in] pRect
Tipo: LPCRECT
Ponteiro para uma estrutura RECT que contém o retângulo, em coordenadas lógicas, em que o texto deve ser desenhado. É recomendável usar pExtentRect de GetThemeTextExtent para recuperar as coordenadas corretas.
Retornar valor
Tipo: HRESULT
Se essa função for bem-sucedida, ela retornará S_OK. Caso contrário, ele retornará um código de erro HRESULT.
Comentários
A função sempre usa a fonte com tema para a parte e o estado especificados se um for definido. Caso contrário, ele usará a fonte atualmente selecionada no contexto do dispositivo. Para descobrir se uma fonte temática está definida, você pode chamar GetThemeFont ou GetThemePropertyOrigin com TMT_FONT como o identificador de propriedade.
Exemplos
DrawThemeText usa parâmetros semelhantes à função DrawText do Win32, mas com algumas diferenças. Um dos mais notáveis é o suporte para cadeias de caracteres largos. Portanto, cadeias de caracteres não largas devem ser convertidas em cadeias de caracteres largas, como no exemplo a seguir.
Aviso de segurança: Usar MultiByteToWideChar incorretamente pode comprometer a segurança do aplicativo. Verifique se, ao criar buffers de caracteres largos, eles são grandes o suficiente para acomodar o tamanho da cadeia de caracteres em caracteres largos, não em 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 | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2003 [somente aplicativos da área de trabalho] |
Plataforma de Destino | Windows |
Cabeçalho | uxtheme.h |
Biblioteca | UxTheme.lib |
DLL | UxTheme.dll |