Graphics.ReleaseHdc Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Sobrecargas
| Name | Description |
|---|---|
| ReleaseHdc() |
Liberta um handle de contexto do dispositivo obtido por uma chamada anterior ao GetHdc() método deste Graphics. |
| ReleaseHdc(IntPtr) |
Liberta um handle de contexto do dispositivo obtido por uma chamada anterior ao GetHdc() método deste Graphics. |
ReleaseHdc()
- Origem:
- Graphics.cs
- Origem:
- Graphics.cs
- Origem:
- Graphics.cs
- Origem:
- Graphics.cs
- Origem:
- Graphics.cs
- Origem:
- Graphics.cs
- Origem:
- Graphics.cs
- Origem:
- Graphics.cs
public:
virtual void ReleaseHdc();
public void ReleaseHdc();
abstract member ReleaseHdc : unit -> unit
override this.ReleaseHdc : unit -> unit
Public Sub ReleaseHdc ()
Implementações
Observações
GetHdc e ReleaseHdc são dois métodos que permitem obter e soltar a pega de um dispositivo Windows. Deves sempre seguir uma chamada para GetHdc com uma chamada para ReleaseHdc quando terminares com a alavanca Windows.
Ver também
Aplica-se a
ReleaseHdc(IntPtr)
- Origem:
- Graphics.cs
- Origem:
- Graphics.cs
- Origem:
- Graphics.cs
- Origem:
- Graphics.cs
- Origem:
- Graphics.cs
- Origem:
- Graphics.cs
- Origem:
- Graphics.cs
- Origem:
- Graphics.cs
public:
void ReleaseHdc(IntPtr hdc);
public void ReleaseHdc(IntPtr hdc);
member this.ReleaseHdc : nativeint -> unit
Public Sub ReleaseHdc (hdc As IntPtr)
Parâmetros
- hdc
-
IntPtr
nativeint
Handle para um contexto de dispositivo obtido por uma chamada anterior ao GetHdc() método deste Graphics.
Exemplos
O seguinte exemplo de código foi concebido para uso com Windows Forms e requer PaintEventArgse, que é um parâmetro do tratador de eventos Paint. O exemplo ilustra a chamada de uma função Windows GDI para realizar a mesma tarefa que um método GDI+ Graphics. O código executa as seguintes ações:
Define o atributo de interoperabilidade DllImportAttribute para o ficheiro DLL Windows gdi32.dll. Esta DLL contém a função GDI desejada e define a Rectangle função nessa DLL como externa.
Cria uma caneta vermelha.
Com a caneta, desenha um retângulo para o ecrã usando o método GDI+ DrawRectangle .
Define uma variável
hdcinterna do tipo ponteiro e define o seu valor para o handle no contexto do dispositivo da forma.Desenha um retângulo para o ecrã usando a função GDI Rectangle .
Liberta o contexto do dispositivo representado pelo
hdcparâmetro.
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
Observações
O contexto do dispositivo é uma estrutura do Windows baseada no GDI que define um conjunto de objetos gráficos e os seus atributos associados, bem como os modos gráficos que afetam a saída.
As chamadas para os GetHdc métodos e ReleaseHdc devem aparecer em pares. Durante o âmbito de um GetHdc par e ReleaseHdc método, normalmente faz-se chamadas apenas para funções GDI. Chamadas nesse âmbito feitas para métodos GDI+ do Graphics que produziram o hdc parâmetro falham com um ObjectBusy erro. Além disso, o GDI+ ignora quaisquer alterações de estado feitas ao Graphics do hdc parâmetro em operações subsequentes.