Freigeben über


DrawThemeText-Funktion (uxtheme.h)

Zeichnet Text mit der Farbe und Schriftart, die durch den visuellen Stil definiert wird.

Syntax

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
);

Parameter

[in] hTheme

Typ: HTHEME

Handle für die Designdaten eines Fensters. Verwenden Sie OpenThemeData , um eine HTHEME zu erstellen.

[in] hdc

Typ: HDC

HDC, das zum Zeichnen verwendet werden soll.

[in] iPartId

Typ: int

Das Steuerelementteil, in dem das gewünschte Erscheinungsbild für den Text gespeichert ist. Weitere Informationen finden Sie unter Teile und Zustände. Wenn der Wert 0 lautet, wird der Text in der Standardschriftart oder in einer im Gerätekontext ausgewählten Schriftart gezeichnet.

[in] iStateId

Typ: int

Der Steuerelementzustand, in dem das gewünschte Erscheinungsbild für den Text gespeichert ist. Weitere Informationen finden Sie unter Teile und Zustände.

[in] pszText

Typ: LPCWSTR

Zeiger auf eine Zeichenfolge, die den zu zeichnenden Text enthält.

[in] cchText

Typ: int

Wert des Typs int , der die Anzahl der zu zeichnenden Zeichen enthält. Wenn der Parameter auf -1 festgelegt ist, werden alle Zeichen in der Zeichenfolge gezeichnet.

[in] dwTextFlags

Typ: DWORD

DWORD , das einen oder mehrere Werte enthält, die die Formatierung der Zeichenfolge angeben. Mögliche Parameterwerte finden Sie unter Formatwerte .

Hinweis DrawThemeText unterstützt DT_CALCRECT nicht. DrawThemeTextEx unterstützt jedoch DT_CALCRECT.
 

[in] dwTextFlags2

Typ: DWORD

Wird nicht verwendet. Auf NULL festlegen.

[in] pRect

Typ: LPCRECT

Zeiger auf eine RECT-Struktur , die das Rechteck in logischen Koordinaten enthält, in dem der Text gezeichnet werden soll. Es wird empfohlen, pExtentRect aus GetThemeTextExtent zu verwenden, um die richtigen Koordinaten abzurufen.

Rückgabewert

Typ: HRESULT

Wenn diese Funktion erfolgreich ist, wird S_OK zurückgegeben. Andernfalls wird ein Fehlercode HRESULT zurückgegeben.

Hinweise

Die Funktion verwendet immer die Designschriftart für den angegebenen Teil und Zustand, sofern eine definiert ist. Andernfalls wird die schriftart verwendet, die derzeit im Gerätekontext ausgewählt ist. Um herauszufinden, ob eine Designschriftart definiert ist, können Sie GetThemeFont oder GetThemePropertyOrigin mit TMT_FONT als Eigenschaftsbezeichner aufrufen.

Beispiele

DrawThemeText verwendet Parameter, die der Win32 DrawText-Funktion ähneln, aber mit einigen Unterschieden. Eine der wichtigsten ist die Unterstützung für Breitzeichenzeichenfolgen. Daher müssen nicht breite Zeichenfolgen wie im folgenden Beispiel in breite Zeichenfolgen konvertiert werden.

Sicherheitswarnung: Die falsche Verwendung von MultiByteToWideChar kann die Sicherheit Ihrer Anwendung beeinträchtigen. Stellen Sie sicher, dass sie beim Erstellen von Breitzeichenpuffern groß genug sind, um die Größe der Zeichenfolge in Breitzeichen und nicht in Bytes aufzunehmen.

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;
    }
}

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile uxtheme.h
Bibliothek UxTheme.lib
DLL UxTheme.dll

Weitere Informationen

Eigenschaftsbezeichner