Condividi tramite


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.

Nota DrawThemeText non supporta DT_CALCRECT. DrawThemeTextEx supporta tuttavia DT_CALCRECT.
 

[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

Vedi anche

Identificatori di proprietà