Graphics.ReleaseHdc Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| ReleaseHdc() |
Bu GetHdc()yönteminin önceki bir çağrısı Graphics tarafından alınan bir cihaz bağlam tutamacını serbest bırakır. |
| ReleaseHdc(IntPtr) |
Bu GetHdc()yönteminin önceki bir çağrısı Graphics tarafından alınan bir cihaz bağlam tutamacını serbest bırakır. |
ReleaseHdc()
- Kaynak:
- Graphics.cs
- Kaynak:
- Graphics.cs
- Kaynak:
- Graphics.cs
- Kaynak:
- Graphics.cs
- Kaynak:
- Graphics.cs
- Kaynak:
- Graphics.cs
- Kaynak:
- Graphics.cs
- Kaynak:
- Graphics.cs
public:
virtual void ReleaseHdc();
public void ReleaseHdc();
abstract member ReleaseHdc : unit -> unit
override this.ReleaseHdc : unit -> unit
Public Sub ReleaseHdc ()
Uygulamalar
Açıklamalar
GetHdc ve ReleaseHdc, Windows bir cihazın tutamacını almanıza ve bırakmanıza olanak sağlayan iki yöntemdir. Windows tanıtıcısıyla işiniz bittiğinde her zaman GetHdc çağrısını ReleaseHdc çağrısıyla izlemeniz gerekir.
Ayrıca bkz.
Şunlara uygulanır
ReleaseHdc(IntPtr)
- Kaynak:
- Graphics.cs
- Kaynak:
- Graphics.cs
- Kaynak:
- Graphics.cs
- Kaynak:
- Graphics.cs
- Kaynak:
- Graphics.cs
- Kaynak:
- Graphics.cs
- Kaynak:
- Graphics.cs
- Kaynak:
- Graphics.cs
public:
void ReleaseHdc(IntPtr hdc);
public void ReleaseHdc(IntPtr hdc);
member this.ReleaseHdc : nativeint -> unit
Public Sub ReleaseHdc (hdc As IntPtr)
Parametreler
- hdc
-
IntPtr
nativeint
Bu GetHdc()yönteminin önceki bir çağrısı tarafından alınan bir cihaz bağlamının Graphics işleyicisi.
Örnekler
Aşağıdaki kod örneği Windows Forms ile kullanılmak üzere tasarlanmıştır ve PaintEventArgs olay işleyicisinin bir parametresi olan ePaint gerektirir. Örnekte, GDI+ Graphics yöntemiyle aynı görevi gerçekleştirmek için bir Windows GDI işlevinin çağrılması gösterilmektedir. Kod aşağıdaki eylemleri gerçekleştirir:
Windows DLL dosyası gdi32.dlliçin birlikte çalışabilirlik DllImportAttribute özniteliğini tanımlar. Bu DLL istenen GDI işlevini içerir ve bu DLL'deki işlevi dış olarak tanımlar Rectangle .
Kırmızı kalem oluşturur.
Kalemle, GDI+ DrawRectangle yöntemini kullanarak ekrana bir dikdörtgen çizer.
İç işaretçi türü değişkenini
hdctanımlar ve değerini tanıtıcıya formun cihaz bağlamı olarak ayarlar.GDI Rectangle işlevini kullanarak ekrana bir dikdörtgen çizer.
parametresi tarafından temsil edilen cihaz bağlamını
hdcserbest bırakır.
private:
[System::Runtime::InteropServices::DllImportAttribute("gdi32.dll")]
static bool Rectangle2( IntPtr hdc, int ulCornerX, int ulCornerY, int lrCornerX, int lrCornerY );
public:
void GetHdcForGDI2( PaintEventArgs^ e )
{
// Create pen.
Pen^ redPen = gcnew Pen( Color::Red,1.0f );
// 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.
Rectangle2( hdc, 10, 70, 110, 120 );
// Release handle to device context.
e->Graphics->ReleaseHdc( hdc );
}
[System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")]
private static extern bool Rectangle2(
IntPtr hdc,
int ulCornerX, int ulCornerY,
int lrCornerX, int lrCornerY);
private void GetHdcForGDI2(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.
Rectangle2(hdc, 10, 70, 110, 120);
// Release handle to device context.
e.Graphics.ReleaseHdc(hdc);
}
<System.Runtime.InteropServices.DllImportAttribute("gdi32.dll")> _
Private Shared Function Rectangle2(ByVal hdc As IntPtr, _
ByVal ulCornerX As Integer, ByVal ulCornerY As Integer, ByVal lrCornerX As Integer, _
ByVal lrCornerY As Integer) As Boolean
End Function
<System.Security.Permissions.SecurityPermission( _
System.Security.Permissions.SecurityAction.LinkDemand, Flags:= _
System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)> _
Private Sub GetHdcForGDI2(ByVal e As PaintEventArgs)
' Create pen.
Dim redPen As New Pen(Color.Red, 1)
' Draw rectangle with GDI+.
e.Graphics.DrawRectangle(redPen, 10, 10, 100, 50)
' Get handle to device context.
Dim hdc As IntPtr = e.Graphics.GetHdc()
' Draw rectangle with GDI using default pen.
Rectangle2(hdc, 10, 70, 110, 120)
' Release handle to device context.
e.Graphics.ReleaseHdc(hdc)
End Sub
Açıklamalar
Cihaz bağlamı, bir dizi grafik nesne ve bunların ilişkili özniteliklerinin yanı sıra çıkışı etkileyen grafik modlarını tanımlayan GDI'yi temel alan Windows bir yapıdır.
ve GetHdc yöntemlerine yapılan ReleaseHdc çağrılar çiftler halinde görünmelidir. ve GetHdcReleaseHdc yöntem çiftinin kapsamı sırasında genellikle yalnızca GDI işlevlerine çağrı yaparsınız. Parametresini oluşturan GDI+ yöntemlerine yapılan bu kapsamdaki Graphics çağrılar hdc hatayla ObjectBusy başarısız olur. Ayrıca GDI+, sonraki işlemlerde parametresinde Graphicshdc yapılan durum değişikliklerini yoksayar.