Freigeben über


SetBkMode-Funktion (wingdi.h)

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

Siehe auch

CreatePen

ExtCreatePen

GetBkMode

Mal- und Zeichnungsfunktionen

Übersicht über Malerei und Zeichnung