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