Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die SetBkMode-Funktion legt den Hintergrundmixmodus des angegebenen Gerätekontexts fest. Der Hintergrundmixmodus wird mit Text, geschlüpften Pinsel und Stiftformatvorlagen verwendet, die keine durchgezogenen Linien sind.
Syntax
int SetBkMode(
[in] HDC hdc,
[in] int mode
);
Die Parameter
[in] hdc
Ein Handle für den Gerätekontext.
[in] mode
Der Hintergrundmodus. Dieser Parameter kann einer der folgenden Werte sein:
| Wert | Bedeutung |
|---|---|
OPAQUE |
Der Hintergrund wird mit der aktuellen Hintergrundfarbe gefüllt, bevor der Text, der geschlüpfte Pinsel oder der Stift gezeichnet wird. |
TRANSPARENT |
Der Hintergrund ist nicht betroffen. |
Rückgabewert
Wenn die Funktion erfolgreich ist, gibt der Rückgabewert den vorherigen Hintergrundmodus an.
Wenn die Funktion fehlschlägt, ist der Rückgabewert null.
Bemerkungen
Die SetBkMode-Funktion wirkt sich auf die Linienarten für Linien aus, die mit einem von der CreatePen-Funktion erstellten Stift gezeichnet wurden. SetBkMode wirkt sich nicht auf Linien aus, die mit einem von der ExtCreatePen-Funktion erstellten Stift gezeichnet wurden.
Beispiele
Informationen zum Erstellen des Hintergrunds eines Schlupfpinsels als transparent oder undurchsichtig finden Sie im Beispiel im Thema "CreateHatchBrush ".
Das nächste Beispiel zeichnet eine Zeichenfolge 36 Mal, wobei sie jedes Mal um 10 Grad gegen den Uhrzeigersinn gedreht wird. Außerdem wird der Hintergrundmodus auf transparent festgelegt, um den Text sichtbar zu machen.
#include "strsafe.h"
LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
int wmId, wmEvent;
PAINTSTRUCT ps;
HDC hdc;
switch (message)
{
case WM_PAINT:
{
hdc = BeginPaint(hWnd, &ps);
RECT rc;
int angle;
HGDIOBJ hfnt, hfntPrev;
WCHAR lpszRotate[22] = TEXT("String to be rotated.");
HRESULT hr;
size_t pcch = 22;
// Allocate memory for a LOGFONT structure.
PLOGFONT plf = (PLOGFONT) LocalAlloc(LPTR, sizeof(LOGFONT));
// Specify a font typeface name and weight.
hr = StringCchCopy(plf->lfFaceName, 6, TEXT("Arial"));
if (FAILED(hr))
{
// TODO: write error handler
}
plf->lfWeight = FW_NORMAL;
// Retrieve the client-rectangle dimensions.
GetClientRect(hWnd, &rc);
// Set the background mode to transparent for the
// text-output operation.
SetBkMode(hdc, TRANSPARENT);
// Draw the string 36 times, rotating 10 degrees
// counter-clockwise each time.
for (angle = 0; angle < 3600; angle += 100)
{
plf->lfEscapement = angle;
hfnt = CreateFontIndirect(plf);
hfntPrev = SelectObject(hdc, hfnt);
//
// The StringCchLength call is fitted to the lpszRotate string
//
hr = StringCchLength(lpszRotate, 22, &pcch);
if (FAILED(hr))
{
// TODO: write error handler
}
TextOut(hdc, rc.right / 2, rc.bottom / 2,
lpszRotate, pcch);
SelectObject(hdc, hfntPrev);
DeleteObject(hfnt);
}
// Reset the background mode to its default.
SetBkMode(hdc, OPAQUE);
// Free the memory allocated for the LOGFONT structure.
LocalFree((LOCALHANDLE) plf);
EndPaint(hWnd, &ps);
break;
}
case WM_DESTROY:
PostQuitMessage(0);
break;
default:
return DefWindowProc(hWnd, message, wParam, lParam);
}
return 0;
}
Anforderungen
| Anforderung | Wert |
|---|---|
| Mindestens unterstützter Client | Windows 2000 Professional [nur Desktop-Apps] |
| Mindestanforderungen für unterstützte Server | Windows 2000 Server [nur Desktop-Apps] |
| Zielplattform | Fenster |
| Überschrift | wingdi.h (enthalten Windows.h) |
| Bibliothek | Gdi32.lib |
| DLL | Gdi32.dll |