Funzione DrawThemeText (uxtheme.h)
Disegna il testo utilizzando il colore e il tipo di carattere definiti dallo stile di visualizzazione.
Sintassi
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
);
Parametri
[in] hTheme
Tipo: HTHEME
Gestire i dati del tema di una finestra. Usare OpenThemeData per creare un HTHEME.
[in] hdc
Tipo: HDC
HDC da usare per il disegno.
[in] iPartId
Tipo: int
La parte del controllo che presenta l'aspetto desiderato per il testo. Vedere Parti e stati. Se questo valore è 0, il testo viene disegnato nel tipo di carattere predefinito o in un tipo di carattere selezionato nel contesto di dispositivo.
[in] iStateId
Tipo: int
Lo stato del controllo che presenta l'aspetto desiderato per il testo. Vedere Parti e stati.
[in] pszText
Tipo: LPCWSTR
Puntatore a una stringa contenente il testo da disegnare.
[in] cchText
Tipo: int
Valore di tipo int che contiene il numero di caratteri da disegnare. Se il parametro è impostato su -1, vengono disegnati tutti i caratteri nella stringa.
[in] dwTextFlags
Tipo: DWORD
DWORD contenente uno o più valori che specificano la formattazione della stringa. Vedere Format Values (Valori di formato ) per i possibili valori dei parametri.
[in] dwTextFlags2
Tipo: DWORD
Non usato. Imposta su zero.
[in] pRect
Tipo: LPCRECT
Puntatore a una struttura RECT che contiene il rettangolo, in coordinate logiche, in cui deve essere disegnato il testo. È consigliabile usare pExtentRect da GetThemeTextExtent per recuperare le coordinate corrette.
Valore restituito
Tipo: HRESULT
Se questa funzione ha esito positivo, restituisce S_OK. In caso contrario, restituisce un codice di errore HRESULT .
Commenti
La funzione usa sempre il tipo di carattere a tema per la parte e lo stato specificati, se definito. In caso contrario, usa il tipo di carattere attualmente selezionato nel contesto del dispositivo. Per scoprire se è definito un tipo di carattere a tema, è possibile chiamare GetThemeFont o GetThemePropertyOrigin con TMT_FONT come identificatore di proprietà.
Esempio
DrawThemeText usa parametri simili alla funzione DrawText Win32, ma con alcune differenze. Uno dei più importanti è il supporto per le stringhe di caratteri wide. Pertanto, le stringhe non wide devono essere convertite in stringhe wide, come nell'esempio seguente.
Avviso di sicurezza: L'uso di MultiByteToWideChar in modo non corretto può compromettere la sicurezza dell'applicazione. Assicurarsi che durante la creazione di buffer di caratteri wide siano sufficientemente grandi da contenere le dimensioni della stringa in caratteri wide, non in byte.
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;
}
}
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Piattaforma di destinazione | Windows |
Intestazione | uxtheme.h |
Libreria | UxTheme.lib |
DLL | UxTheme.dll |