Graphics.GetHdc Metoda

Definicja

Pobiera dojście do kontekstu urządzenia skojarzonego z tym Graphics.

C#
public IntPtr GetHdc();

Zwraca

IntPtr

Dojście do kontekstu urządzenia skojarzonego z tym Graphics.

Implementuje

Przykłady

Poniższy przykład kodu jest przeznaczony do użycia z formularzami Systemu Windows i wymaga PaintEventArgse, który jest parametrem programu obsługi zdarzeń Paint. W przykładzie pokazano wywołanie funkcji GDI systemu Windows w celu wykonania tego samego zadania co metoda GDI+ Graphics. Kod wykonuje następujące akcje:

  • Definiuje atrybut współdziałania DllImportAttribute dla pliku DLL systemu Windows gdi32.dll. Ta biblioteka DLL zawiera żądaną funkcję GDI.

  • Definiuje funkcję Rectangle w tej bibliotece DLL jako zewnętrzną.

  • Tworzy czerwony pióro.

  • Za pomocą pióra rysuje prostokąt na ekranie przy użyciu metody GDI+ DrawRectangle.

  • Definiuje wewnętrzną zmienną typu wskaźnika hdc i ustawia jej wartość na dojście do kontekstu urządzenia formularza.

  • Rysuje prostokąt na ekranie przy użyciu funkcji GDI Rectangle.

  • Zwalnia kontekst urządzenia reprezentowany przez parametr hdc.

C#
public class GDI
{
    [System.Runtime.InteropServices.DllImport("gdi32.dll")]
    internal static extern bool Rectangle(
       IntPtr hdc,
       int ulCornerX, int ulCornerY,
       int lrCornerX, int lrCornerY);
}

private void GetHdcForGDI1(PaintEventArgs e)
{
    // Create pen.
    Pen redPen = new Pen(Color.Red, 1);

    // Draw rectangle with GDI+.
    e.Graphics.DrawRectangle(redPen, 10, 10, 100, 50);

    // Get handle to device context.
    IntPtr hdc = e.Graphics.GetHdc();

    // Draw rectangle with GDI using default pen.
    GDI.Rectangle(hdc, 10, 70, 110, 120);

    // Release handle to device context.
    e.Graphics.ReleaseHdc(hdc);
}

Uwagi

Kontekst urządzenia jest strukturą systemu Windows opartą na GDI, która definiuje zestaw obiektów graficznych i skojarzonych z nimi atrybutów, a także tryby graficzne wpływające na dane wyjściowe. Ta metoda zwraca ten kontekst urządzenia z wyjątkiem czcionki. Ponieważ czcionka nie jest zaznaczona, wywołania metody FromHdc przy użyciu uchwytu zwróconego z metody GetHdc zakończy się niepowodzeniem.

Wywołania metod GetHdc i ReleaseHdc muszą występować w parach. W zakresie pary GetHdc i ReleaseHdc metody zwykle wykonuje się tylko wywołania funkcji GDI. Wywołania w tym zakresie do metod GDI+ Graphics, które wygenerowały parametr hdc kończy się niepowodzeniem z powodu błędu ObjectBusy. Ponadto GDI+ ignoruje wszelkie zmiany stanu wprowadzone w Graphics parametru hdc w kolejnych operacjach.

Dotyczy

Produkt Wersje
.NET 8 (package-provided), 9 (package-provided), 10 (package-provided)
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0 (package-provided)
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10