Graphics.FromHdc Метод

Определение

Создает новый объект Graphics из указанного дескриптора для контекста устройств.

Перегрузки

FromHdc(IntPtr)

Создает новый объект Graphics из указанного дескриптора для контекста устройств.

FromHdc(IntPtr, IntPtr)

Создает новый объект Graphics из указанного дескриптора контекста устройства и дескриптора устройства.

FromHdc(IntPtr)

Исходный код:
Graphics.cs
Исходный код:
Graphics.cs
Исходный код:
Graphics.cs

Создает новый объект Graphics из указанного дескриптора для контекста устройств.

public:
 static System::Drawing::Graphics ^ FromHdc(IntPtr hdc);
public static System.Drawing.Graphics FromHdc (IntPtr hdc);
static member FromHdc : nativeint -> System.Drawing.Graphics
Public Shared Function FromHdc (hdc As IntPtr) As Graphics

Параметры

hdc
IntPtr

nativeint

Дескриптор контекста устройства.

Возвращаемое значение

Этот метод возвращает новый объект Graphics для заданного контекста устройств.

Примеры

Следующий пример кода предназначен для использования с Windows Forms и требует PaintEventArgse, который является параметром обработчика Paint событий. Код выполняет следующее действие:

  • Создает переменную hdc типа внутреннего указателя и задает для нее дескриптор контекста устройства графического объекта формы.

  • Создает новый графический объект с помощью hdc.

  • Рисует прямоугольник с новым графическим объектом (на экране).

  • Освобождает новый графический объект с помощью hdc.

public:
   void FromHdcHdc( PaintEventArgs^ e )
   {
      // Get handle to device context.
      IntPtr hdc = e->Graphics->GetHdc();

      // Create new graphics object using handle to device context.
      Graphics^ newGraphics = Graphics::FromHdc( hdc );

      // Draw rectangle to screen.
      newGraphics->DrawRectangle( gcnew Pen( Color::Red,3.0f ), 0, 0, 200, 100 );

      // Release handle to device context and dispose of the      // Graphics object
      e->Graphics->ReleaseHdc( hdc );
      delete newGraphics;
   }
private void FromHdcHdc(PaintEventArgs e)
{
    // Get handle to device context.
    IntPtr hdc = e.Graphics.GetHdc();

    // Create new graphics object using handle to device context.
    Graphics newGraphics = Graphics.FromHdc(hdc);

    // Draw rectangle to screen.
    newGraphics.DrawRectangle(new Pen(Color.Red, 3), 0, 0, 200, 100);

    // Release handle to device context and dispose of the      // Graphics object
    e.Graphics.ReleaseHdc(hdc);
    newGraphics.Dispose();
}
<System.Security.Permissions.SecurityPermission( _
System.Security.Permissions.SecurityAction.LinkDemand, Flags := _
System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode)> _
Private Sub FromHdcHdc(ByVal e As PaintEventArgs)

    ' Get handle to device context.
    Dim hdc As IntPtr = e.Graphics.GetHdc()

    ' Create new graphics object using handle to device context.
    Dim newGraphics As Graphics = Graphics.FromHdc(hdc)

    ' Draw rectangle to screen.
    newGraphics.DrawRectangle(New Pen(Color.Red, 3), 0, 0, 200, 100)

    ' Release handle to device context and dispose of the Graphics 	' object
    e.Graphics.ReleaseHdc(hdc)
    newGraphics.Dispose()
End Sub

Комментарии

Всегда следует вызывать метод , Dispose чтобы освободить Graphics и связанные ресурсы, созданные методом FromHdc .

Даже если устройство отображения имеет связанный цветной профиль ICM, GDI+ не будет использовать этот профиль по умолчанию. Чтобы включить ICM для Graphics, создайте Graphics из HDC после передачи HDC (и ICM_ON) в функцию SetICMMode . Затем все рисунки, выполненные с Graphics помощью , будут скорректированы в соответствии с профилем ICM, связанным с устройством отображения. Включение ICM приведет к снижению производительности.

Состояние контекста устройства (режим сопоставления, логическая единица и т. п.) во время вызова FromHdc может повлиять на отрисовку, выполненную Graphicsобъектом .

Применяется к

FromHdc(IntPtr, IntPtr)

Исходный код:
Graphics.cs
Исходный код:
Graphics.cs
Исходный код:
Graphics.cs

Создает новый объект Graphics из указанного дескриптора контекста устройства и дескриптора устройства.

public:
 static System::Drawing::Graphics ^ FromHdc(IntPtr hdc, IntPtr hdevice);
public static System.Drawing.Graphics FromHdc (IntPtr hdc, IntPtr hdevice);
static member FromHdc : nativeint * nativeint -> System.Drawing.Graphics
Public Shared Function FromHdc (hdc As IntPtr, hdevice As IntPtr) As Graphics

Параметры

hdc
IntPtr

nativeint

Дескриптор контекста устройства.

hdevice
IntPtr

nativeint

Дескриптор устройства.

Возвращаемое значение

Этот метод возвращает новый объект Graphics для заданного контекста устройств и самого устройства.

Комментарии

Всегда следует вызывать метод , Dispose чтобы освободить Graphics и связанные ресурсы, созданные методом FromHdc .

Даже если устройство отображения имеет связанный цветной профиль ICM, GDI+ не будет использовать этот профиль по умолчанию. Чтобы включить ICM для Graphics, создайте Graphics из HDC после передачи HDC (и ICM_ON) в функцию SetICMMode . Затем все рисунки, выполненные с Graphics помощью , будут скорректированы в соответствии с профилем ICM, связанным с устройством отображения. Включение ICM приведет к снижению производительности.

Состояние контекста устройства (режим сопоставления, логическая единица и т. п.) во время вызова FromHdc может повлиять на отрисовку, выполненную Graphicsобъектом .

Дескриптор устройства обычно используется для запроса конкретных возможностей принтера.

Применяется к